Class: RubyScriptProvider::FileBrowseNode

Inherits:
BaseNode
  • Object
show all
Defined in:
lib/rubyscriptprovider.rb

Overview

describes file

Constant Summary

Constants inherited from BaseNode

BaseNode::NODE_TYPE

Instance Attribute Summary

Attributes inherited from BaseNode

#editable, #name

Instance Method Summary collapse

Methods inherited from BaseNode

#addPropertyChangeListener, #addVetoableChangeListener, #getIntrospection, #getPropertySetInfo, #getType, #getValue, #hasChildNodes, #hasMethod, #hasProperty, #removePropertyChangeListener, #removeVetoableChangeListener, #rename, #setPropertyValue, #setValue, #update

Methods included from Uno::UnoBase

#getImplementationId, #getTypes

Constructor Details

#initialize(url, storage, name) ⇒ FileBrowseNode

Returns a new instance of FileBrowseNode.



652
653
654
# File 'lib/rubyscriptprovider.rb', line 652

def initialize(url, storage, name)
  super(url, storage, name)
end

Instance Method Details

#getChildNodesObject



664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
# File 'lib/rubyscriptprovider.rb', line 664

def getChildNodes
  result = []
  if @storage.exists?(@url)
    begin
      file_name = @url.basename
      descriptions = @storage.descriptions(@url)
      @storage.get_method_names(@url).each do |name|
        display_name, description = parse_entry(descriptions[name])
        display_name = name if display_name.empty?
        result << ScriptBrowseNode.new(
                @url, @storage, display_name, name, description)
      end
    rescue => e
      p e.to_s + "\n" + e.backtrace.join("\n") + "\n"
    end
  end
  return result
end

#getPropertyValue(name) ⇒ Object



683
684
685
686
687
688
689
690
691
692
# File 'lib/rubyscriptprovider.rb', line 683

def getPropertyValue(name)
  ret = false
  case name
  when "Renamable", "Deletable"
    ret = ! @storage.is_readonly?(@url)
  when "Editable"
    ret = @url.transient? && ! @storage.is_readonly?(@url)
  end
  return ret
end

#invoke(name, args, arg2, arg3) ⇒ Object



694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
# File 'lib/rubyscriptprovider.rb', line 694

def invoke(name, args, arg2, arg3)
  value = false
  begin
    case name
    when "Editable"
      # push yaml file too if there
      source = @storage.choose_file
      @storage.file_copy(source, @url, true) if source
    when "Renamable"
        name = args[0]
        name += RB_EXTENSION unless name.end_with?(RB_EXTENSION)
        dest = rename(name)
        update(name, dest)
        value = self
    when "Deletable"
        value = @storage.delete(@url)
    end
  rescue => e
    p %Q!#{e}\n#{e.backtrace.join("\n")}\n!
  end
  return [value, [0], [nil]]
end

#parse_entry(entry) ⇒ Object



656
657
658
659
660
661
662
# File 'lib/rubyscriptprovider.rb', line 656

def parse_entry(entry)
  begin
    return entry["name"], entry["description"]
  rescue
    return "", ""
  end
end