package org.insightech.er.editor.controller.editpart.outline.ermodel; import java.beans.PropertyChangeEvent; import org.eclipse.gef.DragTracker; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.Request; import org.eclipse.gef.RequestConstants; import org.eclipse.gef.tools.SelectEditPartTracker; import org.insightech.er.Activator; import org.insightech.er.ImageKey; import org.insightech.er.editor.controller.command.ermodel.OpenERModelCommand; import org.insightech.er.editor.controller.editpart.DeleteableEditPart; import org.insightech.er.editor.controller.editpart.element.ERDiagramEditPart; import org.insightech.er.editor.controller.editpart.outline.AbstractOutlineEditPart; import org.insightech.er.editor.controller.editpolicy.element.node.NodeElementComponentEditPolicy; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.diagram_contents.element.node.ermodel.ERModel; import org.insightech.er.editor.model.diagram_contents.element.node.table.TableSet; public class ERModelOutlineEditPart extends AbstractOutlineEditPart implements DeleteableEditPart { public void propertyChange(PropertyChangeEvent evt) { // if (evt.getPropertyName().equals(TableSet.PROPERTY_CHANGE_TABLE_SET)) { // refresh(); // } if (evt.getPropertyName().equals(ERModel.PROPERTY_CHANGE_VTABLES)) { refresh(); } } @Override public void refresh() { // if (ERDiagramEditPart.isUpdateable()) { refreshChildren(); refreshVisuals(); // } } @Override public DragTracker getDragTracker(Request req) { return new SelectEditPartTracker(this); } public boolean isDeleteable() { return true; } @Override protected void refreshOutlineVisuals() { this.refreshName(); for (Object child : this.getChildren()) { EditPart part = (EditPart) child; part.refresh(); } } private void refreshName() { ERModel model = (ERModel) this.getModel(); // ERModelSet modelSet = (ERModelSet) this.getModel(); // ERDiagram diagram = (ERDiagram) this.getRoot().getContents().getModel(); // // String name = null; // // int viewMode = diagram.getDiagramContents().getSettings() // .getOutlineViewMode(); // // if (viewMode == Settings.VIEW_MODE_PHYSICAL) { // if (model.getPhysicalName() != null) { // name = model.getPhysicalName(); // // } else { // name = ""; // } // // } else if (viewMode == Settings.VIEW_MODE_LOGICAL) { // if (model.getLogicalName() != null) { // name = model.getLogicalName(); // // } else { // name = ""; // } // // } else { // if (model.getLogicalName() != null) { // name = model.getLogicalName(); // // } else { // name = ""; // } // // name += "/"; // // if (model.getPhysicalName() != null) { // name += model.getPhysicalName(); // // } // } this.setWidgetText(model.getName()); this.setWidgetImage(Activator.getImage(ImageKey.DIAGRAM)); } @Override public void performRequest(Request request) { ERModel model = (ERModel) this.getModel(); ERDiagram diagram = this.getDiagram(); if (request.getType().equals(RequestConstants.REQ_OPEN)) { OpenERModelCommand command = new OpenERModelCommand(diagram, model); this.execute(command); } super.performRequest(request); } @Override protected void createEditPolicies() { this.installEditPolicy(EditPolicy.COMPONENT_ROLE, new NodeElementComponentEditPolicy()); } }