package org.insightech.er.editor.controller.editpart.outline;
import java.beans.PropertyChangeListener;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editparts.AbstractTreeEditPart;
import org.insightech.er.editor.controller.editpart.element.ERDiagramEditPart;
import org.insightech.er.editor.model.AbstractModel;
import org.insightech.er.editor.model.ERDiagram;
import org.insightech.er.editor.model.diagram_contents.element.node.category.Category;
public abstract class AbstractOutlineEditPart extends AbstractTreeEditPart
implements PropertyChangeListener, FilteringEditPart {
private String filterText;
@Override
public void setFilterText(String filterText) {
this.filterText = filterText;
}
/**
* {@inheritDoc}
*/
@Override
public void activate() {
super.activate();
((AbstractModel) getModel()).addPropertyChangeListener(this);
}
/**
* {@inheritDoc}
*/
@Override
public void deactivate() {
((AbstractModel) getModel()).removePropertyChangeListener(this);
super.deactivate();
}
@Override
public void refresh() {
if (ERDiagramEditPart.isUpdateable()) {
refreshChildren();
refreshVisuals();
}
}
/**
* {@inheritDoc}
*/
@Override
final public void refreshVisuals() {
if (ERDiagramEditPart.isUpdateable()) {
this.refreshOutlineVisuals();
for (Object child : this.getChildren()) {
AbstractOutlineEditPart part = (AbstractOutlineEditPart) child;
part.refreshVisuals();
}
}
}
protected ERDiagram getDiagram() {
return (ERDiagram) this.getRoot().getContents().getModel();
}
protected Category getCurrentCategory() {
return this.getDiagram().getCurrentCategory();
}
abstract protected void refreshOutlineVisuals();
protected void execute(Command command) {
this.getViewer().getEditDomain().getCommandStack().execute(command);
}
/**
* filterText���擾���܂��B
* @return filterText
*/
public String getFilterText() {
return filterText;
}
}