/* * @see org.openide.util.actions.SystemAction#getName() */ @Override public String getName() { for (final Node node : nodes) if (node.getClass().equals(PackageNode.class)) return Messages.getString("updateAction.getName"); // $NON-NLS-1$ return null; }
/* * @see org.openide.nodes.Node#destroy() */ @Override public void destroy() throws IOException { final DirectoryObject object = (DirectoryObject) getLookup().lookup(DirectoryObject.class); final Realm realm = (Realm) getLookup().lookup(Realm.class); if (null == realm || null == object) throw new IllegalStateException("Don't have a directory or object"); // $NON-NLS-1$ try { realm.getDirectory().delete(object); super.destroy(); final Node parentNode = getParentNode(); } catch (final DirectoryException e) { ErrorManager.getDefault() .annotate( e, ErrorManager.EXCEPTION, Messages.getString("DirObjectNode.cantDelete"), null, null, null); //$NON-NLS-1$ ErrorManager.getDefault().notify(e); } }
/* * @see org.openide.nodes.AbstractNode#setName(java.lang.String) */ @Override public void setName(String s) { if (null == s || s.length() == 0) { DialogDisplayer.getDefault() .notify( new NotifyDescriptor( Messages.getString("DirObjectNode.nameInvalid", s), // $NON-NLS-1$ //$NON-NLS-2$ Messages.getString("DirObjectNode.cantChangeName"), // $NON-NLS-1$ NotifyDescriptor.DEFAULT_OPTION, NotifyDescriptor.ERROR_MESSAGE, null, null)); return; } final Node[] nodes = getParentNode().getChildren().getNodes(); for (final Node node : nodes) if (node instanceof DirObjectNode) { final DirObjectNode don = (DirObjectNode) node; final DirectoryObject object = (DirectoryObject) don.getLookup().lookup(DirectoryObject.class); if (null != object && object.getName().equals(s)) { DialogDisplayer.getDefault() .notify( new NotifyDescriptor( Messages.getString("DirObjectNode.alreadyExists"), // $NON-NLS-1$ Messages.getString("DirObjectNode.cantChangeName"), // $NON-NLS-1$ NotifyDescriptor.DEFAULT_OPTION, NotifyDescriptor.ERROR_MESSAGE, null, null)); return; } } final DirectoryObject object = (DirectoryObject) getLookup().lookup(DirectoryObject.class); final Realm realm = (Realm) getLookup().lookup(Realm.class); if (null == realm || null == object) throw new IllegalStateException("Don't have a directory or object"); // $NON-NLS-1$ final String oldName = object.getName(); // reload the object so that we work on a copy. DirectoryObject copy = null; try { // disable caching! copy = realm.getDirectory().load(object.getClass(), object.getDn(), true); } catch (final DirectoryException e) { ErrorManager.getDefault().notify(e); } // copy connection descriptor for realm if (object instanceof Realm) ((Realm) copy).setConnectionDescriptor(((Realm) object).getConnectionDescriptor()); copy.setName(s); try { realm.getDirectory().save(copy); // fireNameChange(oldName, s); // DN change. Refresh the parent. final Node parentNode = getParentNode(); if (null != parentNode && parentNode instanceof Refreshable) ((Refreshable) parentNode).refresh(); } catch (final DirectoryException e) { e.printStackTrace(); object.setName(oldName); ErrorManager.getDefault() .annotate( e, ErrorManager.ERROR, null, Messages.getString("DirObjectNode.cantSave"), null, null); //$NON-NLS-1$ ErrorManager.getDefault().notify(e); } }