# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: /home/matthias/NetBeansProjects/main-golden
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: db/nbproject/project.xml
--- db/nbproject/project.xml Base (BASE)
+++ db/nbproject/project.xml Locally Modified (Based On LOCAL)
@@ -73,7 +73,7 @@
0-1
- 0.3
+ 1.2
Index: db/src/org/netbeans/api/db/explorer/node/Bundle.properties
--- db/src/org/netbeans/api/db/explorer/node/Bundle.properties Base (BASE)
+++ db/src/org/netbeans/api/db/explorer/node/Bundle.properties Locally Modified (Based On LOCAL)
@@ -263,8 +263,9 @@
catalogSeparator=Catalog separator
Yes=Yes
No=No
+System=System
+SystemDesc=System table
-
# Queries
PROP_proceduresQuery=Procedures query
Index: db/src/org/netbeans/modules/db/explorer/action/AddColumnAction.java
--- db/src/org/netbeans/modules/db/explorer/action/AddColumnAction.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/action/AddColumnAction.java Locally Modified (Based On LOCAL)
@@ -68,9 +68,16 @@
@Override
protected boolean enable(Node[] activatedNodes) {
- boolean result = activatedNodes.length == 1 &&
- activatedNodes[0].getLookup().lookup(TableNode.class) != null;
+ boolean result = false;
+ if (activatedNodes.length == 1) {
+ TableNode tn = activatedNodes[0].getLookup().lookup(TableNode.class);
+
+ if (tn != null && (!tn.isSystem())) {
+ result = true;
+ }
+ }
+
return result;
}
Index: db/src/org/netbeans/modules/db/explorer/action/GrabTableAction.java
--- db/src/org/netbeans/modules/db/explorer/action/GrabTableAction.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/action/GrabTableAction.java Locally Modified (Based On LOCAL)
@@ -50,6 +50,7 @@
import org.netbeans.lib.ddl.impl.Specification;
import org.netbeans.modules.db.explorer.DatabaseConnection;
import org.netbeans.modules.db.explorer.DbUtilities;
+import org.netbeans.modules.db.explorer.node.TableListNode;
import org.netbeans.modules.db.explorer.node.TableNode;
import org.openide.DialogDisplayer;
import org.openide.NotifyDescriptor;
@@ -81,8 +82,12 @@
boolean enabled = false;
if (activatedNodes.length == 1) {
- enabled = activatedNodes[0].getLookup().lookup(TableNode.class) != null;
+ TableNode tn = activatedNodes[0].getLookup().lookup(TableNode.class);
+
+ if (tn != null && (! tn.isSystem())) {
+ enabled = true;
}
+ }
return enabled;
}
Index: db/src/org/netbeans/modules/db/explorer/action/RecreateTableAction.java
--- db/src/org/netbeans/modules/db/explorer/action/RecreateTableAction.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/action/RecreateTableAction.java Locally Modified (Based On LOCAL)
@@ -58,6 +58,7 @@
import org.netbeans.modules.db.explorer.dlg.LabeledTextFieldDialog;
import org.netbeans.modules.db.explorer.node.SchemaNameProvider;
import org.netbeans.modules.db.explorer.node.TableListNode;
+import org.netbeans.modules.db.explorer.node.TableNode;
import org.openide.DialogDisplayer;
import org.openide.NotifyDescriptor;
import org.openide.filesystems.FileChooserBuilder;
@@ -81,9 +82,11 @@
boolean enabled = false;
if (activatedNodes.length == 1) {
+ TableNode tn = activatedNodes[0].getLookup().lookup(TableNode.class);
+
DatabaseConnection dbconn = activatedNodes[0].getLookup().lookup(DatabaseConnection.class);
- if (dbconn != null) {
+ if (dbconn != null && tn != null && (! tn.isSystem())) {
enabled = DatabaseConnection.isVitalConnection(dbconn.getConnection(), dbconn);
}
}
Index: db/src/org/netbeans/modules/db/explorer/node/Bundle.properties
--- db/src/org/netbeans/modules/db/explorer/node/Bundle.properties Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/node/Bundle.properties Locally Modified (Based On LOCAL)
@@ -68,7 +68,8 @@
ND_ProcedureParam=Stored Procedure Parameter
ND_Root=Database Explorer Module Home
ND_Schema=Schema
-ND_TableList=List of Tables
+ND_TableList=List of tables
+ND_SystemTableList=List of system tables
ND_Table=Table
ND_ViewList=List of Views
ND_View=View
@@ -81,6 +82,7 @@
ProcedureListNode_DISPLAYNAME=Procedures
RootNode_DISPLAYNAME=Databases
TableListNode_DISPLAYNAME=Tables
+SystemTableListNode_DISPLAYNAME=System Tables
ViewListNode_DISPLAYNAME=Views
StoredProcedure=Stored procedure
Index: db/src/org/netbeans/modules/db/explorer/node/TableListNode.java
--- db/src/org/netbeans/modules/db/explorer/node/TableListNode.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/node/TableListNode.java Locally Modified (Based On LOCAL)
@@ -61,11 +61,14 @@
*/
public class TableListNode extends BaseNode implements SchemaNameProvider {
private static final String NAME = "Tables"; // NOI18N
+ private static final String SYSTEM_NAME = "SystemTables"; // NOI18N
private static final String ICONBASE = "org/netbeans/modules/db/resources/folder.gif"; // NOI18N
private static final String FOLDER = "TableList"; //NOI18N
+ private static final String SYSTEM_FOLDER = "SystemTableList"; //NOI18N
private MetadataElementHandle schemaHandle;
private final DatabaseConnection connection;
+ private final boolean system;
/**
* Create an instance of TableListNode.
@@ -73,15 +76,16 @@
* @param dataLookup the lookup to use when creating node providers
* @return the TableListNode instance
*/
- public static TableListNode create(NodeDataLookup dataLookup, NodeProvider provider) {
- TableListNode node = new TableListNode(dataLookup, provider);
+ public static TableListNode create(NodeDataLookup dataLookup, NodeProvider provider, boolean system) {
+ TableListNode node = new TableListNode(dataLookup, provider, system);
node.setup();
return node;
}
- private TableListNode(NodeDataLookup lookup, NodeProvider provider) {
- super(new ChildNodeFactory(lookup), lookup, FOLDER, provider);
- connection = getLookup().lookup(DatabaseConnection.class);
+ private TableListNode(NodeDataLookup lookup, NodeProvider provider, boolean system) {
+ super(new ChildNodeFactory(lookup), lookup, system ? SYSTEM_FOLDER : FOLDER, provider);
+ this.connection = getLookup().lookup(DatabaseConnection.class);
+ this.system = system;
}
@SuppressWarnings("unchecked")
@@ -91,13 +95,21 @@
@Override
public String getName() {
+ if(system) {
return NAME;
+ } else {
+ return SYSTEM_NAME;
}
+ }
@Override
public String getDisplayName() {
+ if(system) {
+ return NbBundle.getMessage (TableListNode.class, "SystemTableListNode_DISPLAYNAME"); // NOI18N
+ } else {
return NbBundle.getMessage (TableListNode.class, "TableListNode_DISPLAYNAME"); // NOI18N
}
+ }
@Override
public String getIconBase() {
@@ -106,8 +118,12 @@
@Override
public String getShortDescription() {
+ if(system) {
+ return NbBundle.getMessage (TableListNode.class, "ND_SystemTableList"); //NOI18N
+ } else {
return NbBundle.getMessage (TableListNode.class, "ND_TableList"); //NOI18N
}
+ }
@Override
public HelpCtx getHelpCtx() {
Index: db/src/org/netbeans/modules/db/explorer/node/TableListNodeProvider.java
--- db/src/org/netbeans/modules/db/explorer/node/TableListNodeProvider.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/node/TableListNodeProvider.java Locally Modified (Based On LOCAL)
@@ -61,18 +61,36 @@
private static class FactoryHolder {
static final NodeProviderFactory FACTORY = new NodeProviderFactory() {
public TableListNodeProvider createInstance(Lookup lookup) {
- TableListNodeProvider provider = new TableListNodeProvider(lookup);
+ TableListNodeProvider provider = new TableListNodeProvider(lookup, false);
return provider;
}
};
}
- private TableListNodeProvider(Lookup lookup) {
+ // lazy initialization holder class idiom for static fields is used
+ // for retrieving the factory
+ public static NodeProviderFactory getSystemFactory() {
+ return SystamFactoryHolder.FACTORY;
+ }
+
+ private static class SystamFactoryHolder {
+ static final NodeProviderFactory FACTORY = new NodeProviderFactory() {
+ public TableListNodeProvider createInstance(Lookup lookup) {
+ TableListNodeProvider provider = new TableListNodeProvider(lookup, true);
+ return provider;
+ }
+ };
+ }
+
+ private final boolean system;
+
+ private TableListNodeProvider(Lookup lookup, boolean system) {
super(lookup);
+ this.system = system;
}
@Override
protected BaseNode createNode(NodeDataLookup lookup) {
- return TableListNode.create(lookup, this);
+ return TableListNode.create(lookup, this, system);
}
}
Index: db/src/org/netbeans/modules/db/explorer/node/TableNode.java
--- db/src/org/netbeans/modules/db/explorer/node/TableNode.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/node/TableNode.java Locally Modified (Based On LOCAL)
@@ -80,6 +80,8 @@
public class TableNode extends BaseNode implements SchemaNameProvider {
private static final String ICONBASE = "org/netbeans/modules/db/resources/table.gif"; // NOI18N
private static final String FOLDER = "Table"; //NOI18N
+ private static final String SYSTEM = "System";
+ private static final String SYSTEMDESC = "SystemDesc";
private static final Map NODES_TO_REFRESH =
new WeakHashMap();
@@ -96,6 +98,7 @@
}
private String name = ""; // NOI18N
+ private boolean system = false;
private final MetadataElementHandle tableHandle;
private final DatabaseConnection connection;
@@ -122,7 +125,7 @@
return ;
}
name = table.getName();
-
+ system = table.isSystem();
updateProperties(table);
}
}
@@ -140,6 +143,7 @@
addProperty(CATALOG, CATALOGDESC, String.class, false, getCatalogName());
addProperty(SCHEMA, SCHEMADESC, String.class, false, getSchemaName());
+ addProperty(SYSTEM, SYSTEMDESC, Boolean.class, false, isSystem());
}
public MetadataElementHandle getTableHandle() {
@@ -184,7 +188,7 @@
@Override
public boolean canDestroy() {
DatabaseConnector connector = connection.getConnector();
- return connector.supportsCommand(Specification.DROP_TABLE);
+ return (! system) && connector.supportsCommand(Specification.DROP_TABLE);
}
@Override
@@ -202,6 +206,10 @@
return ICONBASE;
}
+ public boolean isSystem() {
+ return system;
+ }
+
@Override
public String getShortDescription() {
return NbBundle.getMessage (TableNode.class, "ND_Table"); //NOI18N
Index: db/src/org/netbeans/modules/db/explorer/node/TableNodeProvider.java
--- db/src/org/netbeans/modules/db/explorer/node/TableNodeProvider.java Base (BASE)
+++ db/src/org/netbeans/modules/db/explorer/node/TableNodeProvider.java Locally Modified (Based On LOCAL)
@@ -75,18 +75,36 @@
static final NodeProviderFactory FACTORY = new NodeProviderFactory() {
@Override
public TableNodeProvider createInstance(Lookup lookup) {
- TableNodeProvider provider = new TableNodeProvider(lookup);
+ TableNodeProvider provider = new TableNodeProvider(lookup, false);
return provider;
}
};
}
+ // lazy initialization holder class idiom for static fields is used
+ // for retrieving the factory
+ public static NodeProviderFactory getSystemFactory() {
+ return SystemFactoryHolder.FACTORY;
+ }
+
+ private static class SystemFactoryHolder {
+ static final NodeProviderFactory FACTORY = new NodeProviderFactory() {
+ @Override
+ public TableNodeProvider createInstance(Lookup lookup) {
+ TableNodeProvider provider = new TableNodeProvider(lookup, true);
+ return provider;
+ }
+ };
+ }
+
private final DatabaseConnection connection;
+ private final boolean system;
private MetadataElementHandle schemaHandle;
@SuppressWarnings("unchecked")
- private TableNodeProvider(Lookup lookup) {
+ private TableNodeProvider(Lookup lookup, boolean system) {
super(lookup, new TableComparator());
+ this.system = system;
connection = getLookup().lookup(DatabaseConnection.class);
schemaHandle = getLookup().lookup(MetadataElementHandle.class);
}
@@ -108,6 +126,10 @@
if (schema != null) {
Collection tables = schema.getTables();
for (Table table : tables) {
+ if( ((! system) && table.isSystem()) ||
+ (system && (! table.isSystem()))) {
+ continue;
+ }
MetadataElementHandle handle = MetadataElementHandle.create(table);
Collection matches = getNodes(handle);
if (matches.size() > 0) {
@@ -116,7 +138,6 @@
NodeDataLookup lookup = new NodeDataLookup();
lookup.add(connection);
lookup.add(handle);
-
newList.add(TableNode.create(lookup, TableNodeProvider.this));
}
}
Index: db/src/org/netbeans/modules/db/resources/mf-layer.xml
--- db/src/org/netbeans/modules/db/resources/mf-layer.xml Base (BASE)
+++ db/src/org/netbeans/modules/db/resources/mf-layer.xml Locally Modified (Based On LOCAL)
@@ -189,6 +189,11 @@
+
+
+
+
+
@@ -243,6 +248,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+