package org.insightech.er.editor.controller.editpart.outline.view;
import java.beans.PropertyChangeEvent;
import java.util.Collections;
import java.util.List;
import org.eclipse.gef.EditPart;
import org.insightech.er.Activator;
import org.insightech.er.ImageKey;
import org.insightech.er.ResourceString;
import org.insightech.er.editor.controller.editpart.outline.AbstractOutlineEditPart;
import org.insightech.er.editor.model.diagram_contents.element.node.table.TableView;
import org.insightech.er.editor.model.diagram_contents.element.node.view.View;
import org.insightech.er.editor.model.diagram_contents.element.node.view.ViewSet;
import org.insightech.er.editor.model.settings.Settings;
public class ViewSetOutlineEditPart extends AbstractOutlineEditPart {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals(ViewSet.PROPERTY_CHANGE_VIEW_SET)) {
refresh();
}
}
/**
* {@inheritDoc}
*/
@Override
protected List getModelChildren() {
ViewSet viewSet = (ViewSet) this.getModel();
List<View> list = viewSet.getList();
if (this.getDiagram().getDiagramContents().getSettings()
.getViewOrderBy() == Settings.VIEW_MODE_LOGICAL) {
Collections.sort(list, TableView.LOGICAL_NAME_COMPARATOR);
} else {
Collections.sort(list, TableView.PHYSICAL_NAME_COMPARATOR);
}
return list;
}
/**
* {@inheritDoc}
*/
@Override
protected void refreshOutlineVisuals() {
this.setWidgetText(ResourceString.getResourceString("label.view") + " ("
+ this.getModelChildren().size() + ")");
this.setWidgetImage(Activator.getImage(ImageKey.DICTIONARY));
}
/**
* {@inheritDoc}
*/
@Override
protected void refreshChildren() {
super.refreshChildren();
for (Object child : this.getChildren()) {
EditPart part = (EditPart) child;
part.refresh();
}
}
}