package org.insightech.er.editor.controller.editpart.outline; import java.beans.PropertyChangeEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.gef.EditPart; import org.eclipse.gef.Request; import org.eclipse.gef.requests.ChangeBoundsRequest; import org.insightech.er.editor.model.AbstractModel; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.diagram_contents.DiagramContents; import org.insightech.er.editor.model.diagram_contents.element.node.NodeElement; public class ERDiagramOutlineEditPart extends AbstractOutlineEditPart { private boolean quickMode; public ERDiagramOutlineEditPart(boolean quickMode) { this.quickMode = quickMode; } /** * {@inheritDoc} */ @Override protected List getModelChildren() { List<AbstractModel> modelChildren = new ArrayList<AbstractModel>(); ERDiagram diagram = (ERDiagram) this.getModel(); DiagramContents diagramContents = diagram.getDiagramContents(); if (quickMode) { modelChildren.add(diagramContents.getContents().getTableSet()); } else { modelChildren.add(diagramContents.getModelSet()); // modelChildren.add(diagramContents.getContents().getErmodelSet()); // modelChildren.add(diagramContents.getDictionary()); modelChildren.add(diagramContents.getGroups()); modelChildren.add(diagramContents.getContents().getTableSet()); modelChildren.add(diagramContents.getContents().getViewSet()); modelChildren.add(diagramContents.getTriggerSet()); modelChildren.add(diagramContents.getSequenceSet()); // modelChildren.add(diagramContents.getIndexSet()); modelChildren.add(diagramContents.getTablespaceSet()); } return modelChildren; } public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(ERDiagram.PROPERTY_CHANGE_ALL) || evt.getPropertyName().equals( ERDiagram.PROPERTY_CHANGE_SETTINGS)) { refresh(); } // if (evt.getPropertyName().equals(ERModelSet.PROPERTY_CHANGE_MODEL_SET)) { // Object newValue = evt.getNewValue(); // if (newValue != null) { // // Set<Entry<NodeElement, EditPart>> entrySet = getModelToEditPart().entrySet(); // for (Entry<NodeElement, EditPart> entry : entrySet) { // if (entry.getKey().equals(newValue)) { // // �G�������g�̍X�V // entry.getValue().refresh(); // } // } // // } else { // refresh(); // } // } } /** * {@inheritDoc} */ @Override protected void refreshOutlineVisuals() { for (Object child : this.getChildren()) { EditPart part = (EditPart) child; part.refresh(); } } @Override public EditPart getTargetEditPart(Request request) { if (request instanceof ChangeBoundsRequest) { ChangeBoundsRequest breq = (ChangeBoundsRequest) request; } // TODO Auto-generated method stub return super.getTargetEditPart(request); } private Map<NodeElement, EditPart> getModelToEditPart() { Map<NodeElement, EditPart> modelToEditPart = new HashMap<NodeElement, EditPart>(); List children = getChildren(); for (int i = 0; i < children.size(); i++) { EditPart editPart = (EditPart) children.get(i); modelToEditPart.put((NodeElement) editPart.getModel(), editPart); } return modelToEditPart; } /** * quickMode��ݒ肵�܂��B * @param quickMode quickMode */ public void setQuickMode(boolean quickMode) { this.quickMode = quickMode; } }