protected void createChange(IPluginModelBase model) { Object node = findNode(model); if (!(node instanceof IPluginObject)) return; try { IPluginObject pluginObject = (IPluginObject) node; IPluginObject parent = pluginObject.getParent(); if (parent instanceof IPluginParent) ((IPluginParent) parent).remove(pluginObject); else if (parent instanceof PluginBaseNode) ((PluginBaseNode) parent).remove(pluginObject); else if (pluginObject instanceof PluginAttribute) { PluginAttribute attr = (PluginAttribute) pluginObject; attr.getEnclosingElement().setXMLAttribute(attr.getName(), null); } } catch (CoreException e) { } }
@Override public void modelChanged(IModelChangedEvent event) { if (event.getChangeType() == IModelChangedEvent.CHANGE) { Object changedObject = event.getChangedObjects()[0]; if (changedObject instanceof IPluginObject) { IPluginObject obj = (IPluginObject) event.getChangedObjects()[0]; // Ignore events from objects that are not yet in the model. if (!(obj instanceof IPluginBase) && obj.isInTheModel() == false) return; } if (changedObject instanceof IBuildObject) { IBuildObject obj = (IBuildObject) event.getChangedObjects()[0]; // Ignore events from objects that are not yet in the model. if (obj.isInTheModel() == false) return; } } super.modelChanged(event); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof IPluginParent) { IPluginParent target = (IPluginParent) obj; if (target.getChildCount() != getChildCount()) return false; IPluginObject[] tchildren = target.getChildren(); for (int i = 0; i < tchildren.length; i++) { IPluginObject tchild = tchildren[i]; IPluginObject child = getChildrenList().get(i); if (child == null || child.equals(tchild) == false) return false; } return true; } return false; }