summaryrefslogtreecommitdiff
path: root/scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java')
-rw-r--r--scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java b/scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java
index 2e9ee6828184..868af0874618 100644
--- a/scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java
+++ b/scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java
@@ -52,6 +52,10 @@ public class ProviderBrowseNode extends PropertySet implements
private final String name;
protected ParcelContainer container;
private final XComponentContext m_xCtx;
+ // these are properties, they are accessed by reflection
+ public boolean deletable = true;
+ public boolean creatable = true;
+ public boolean editable = false;
public ProviderBrowseNode(ScriptProvider provider, ParcelContainer container,
XComponentContext xCtx) {
@@ -68,10 +72,15 @@ public class ProviderBrowseNode extends PropertySet implements
XMultiComponentFactory xFac = m_xCtx.getServiceManager();
try {
- UnoRuntime.queryInterface(XSimpleFileAccess.class,
+ XSimpleFileAccess xSFA = UnoRuntime.queryInterface(XSimpleFileAccess.class,
xFac.createInstanceWithContext(
"com.sun.star.ucb.SimpleFileAccess",
xCtx));
+ if ( container.isUnoPkg() || xSFA.isReadOnly( container.getParcelContainerDir() ) )
+ {
+ deletable = false;
+ creatable = false;
+ }
}
// TODO propage errors
catch (com.sun.star.uno.Exception e) {