Class: RubyScriptProvider::DirBrowseNode

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

Overview

describes directory

Direct Known Subclasses

PackageBrowseNode

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) ⇒ DirBrowseNode

Returns a new instance of DirBrowseNode.



721
722
723
# File 'lib/rubyscriptprovider.rb', line 721

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

Instance Method Details

#getChildNodesObject



725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
# File 'lib/rubyscriptprovider.rb', line 725

def getChildNodes
  ret = []
  begin
  if @storage.exists?(@url)
    @storage.dir_contents(@url).sort!.each do |name|
      url = @url.create(name)
      if @storage.is_dir?(url)
        ret << DirBrowseNode.new(url, @storage, url.basename)
      elsif File::extname(name) == RB_EXTENSION
        ret << FileBrowseNode.new(url, @storage, url.basename(RB_EXTENSION))
      end
    end
  end
  rescue => e
    p e
  end
  return ret
end

#getPropertyValue(name) ⇒ Object



744
745
746
747
748
749
750
751
# File 'lib/rubyscriptprovider.rb', line 744

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

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



753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
# File 'lib/rubyscriptprovider.rb', line 753

def invoke(name, args, arg2, arg3)
  value = false
  begin
    case name
    when "Creatable"
      name = args[0]
      if name.end_with?("/")
        name = name[0..-2]
        url = @url.create(@url.join(name))
        @storage.dir_create(url)
        node = DirBrowseNode.new(url, @storage, name)
      else
        name += RB_EXTENSION unless name.end_with?(RB_EXTENSION)
        url = @url.create(@url.join(name))
        @storage.file_create(@url, name)
        node = FileBrowseNode.new(url, @storage, url.basename(RB_EXTENSION))
      end
      value = node
    when "Renamable"
      name = args[0]
      dest = rename(name)
      update(name, dest)
      value = self
    when "Deletable"
      value = @storage.delete(@url)
    end
  rescue => e
    p e, e.backtrace.join("\n")
  end
  return [value, [0], [nil]]
end