package org.insightech.er.editor.controller.editpart.element.node; import java.beans.PropertyChangeEvent; import org.eclipse.draw2d.IFigure; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.ui.PlatformUI; import org.insightech.er.editor.controller.command.common.ChangeModelPropertiesCommand; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.diagram_contents.element.node.model_properties.ModelProperties; import org.insightech.er.editor.model.settings.Settings; import org.insightech.er.editor.view.dialog.element.ModelPropertiesDialog; import org.insightech.er.editor.view.figure.ModelPropertiesFigure; public class ModelPropertiesEditPart extends NodeElementEditPart implements IResizable { public ModelPropertiesEditPart() { super(); } /** * {@inheritDoc} */ @Override protected IFigure createFigure() { ERDiagram diagram = this.getDiagram(); Settings settings = diagram.getDiagramContents().getSettings(); ModelPropertiesFigure figure = new ModelPropertiesFigure(); this.changeFont(figure); figure.setVisible(settings.getModelProperties().isDisplay()); return figure; } /** * {@inheritDoc} */ @Override public void doPropertyChange(PropertyChangeEvent event) { if (event.getPropertyName().equals( ModelProperties.PROPERTY_CHANGE_MODEL_PROPERTIES)) { refreshVisuals(); } super.doPropertyChange(event); } /** * {@inheritDoc} */ @Override public void refreshVisuals() { ERDiagram diagram = this.getDiagram(); ModelProperties modelProperties = (ModelProperties) this.getModel(); ModelPropertiesFigure figure = (ModelPropertiesFigure) this.getFigure(); figure.setData(modelProperties.getProperties(), modelProperties .getCreationDate(), modelProperties.getUpdatedDate(), diagram .getDiagramContents().getSettings().getTableStyle(), modelProperties.getColor()); super.refreshVisuals(); } /** * {@inheritDoc} */ @Override public void changeSettings(Settings settings) { this.figure.setVisible(settings.getModelProperties().isDisplay()); super.changeSettings(settings); } /** * {@inheritDoc} */ @Override protected void setVisible() { ERDiagram diagram = this.getDiagram(); Settings settings = diagram.getDiagramContents().getSettings(); this.figure.setVisible(settings.getModelProperties().isDisplay()); } /** * {@inheritDoc} */ @Override public void performRequestOpen() { ERDiagram diagram = this.getDiagram(); ModelProperties copyModelProperties = (ModelProperties) diagram .getDiagramContents().getSettings().getModelProperties() .clone(); ModelPropertiesDialog dialog = new ModelPropertiesDialog(PlatformUI .getWorkbench().getActiveWorkbenchWindow().getShell(), copyModelProperties); if (dialog.open() == IDialogConstants.OK_ID) { ChangeModelPropertiesCommand command = new ChangeModelPropertiesCommand( diagram, copyModelProperties); this.executeCommand(command); } } /** * {@inheritDoc} */ @Override public boolean isDeleteable() { return false; } }