package org.insightech.er.editor.view.action.ermodel; import java.util.Comparator; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.dialogs.DialogSettings; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.diagram_contents.element.node.table.ERTable; public class NodeSelectionDialog extends FilteredItemsSelectionDialog { // private ItemsFilter itemsFilter = new ItemsFilter() { // @Override // public boolean matchItem(Object item) { // System.out.println("matchItem"); // return true; // } // // @Override // public boolean isConsistentItem(Object item) { // System.out.println("isConsistentItem"); // return true; // } // }; private ERDiagram diagram; public NodeSelectionDialog(Shell shell, ERDiagram diagram) { super(shell); this.diagram = diagram; } @Override protected Control createExtendedContentArea(Composite parent) { // TODO Auto-generated method stub System.out.println("createExtendedContentArea"); return null; } @Override protected IDialogSettings getDialogSettings() { IDialogSettings result = new DialogSettings("NodeSelectionDialog"); //$NON-NLS-1$ return result; } @Override protected IStatus validateItem(Object item) { return Status.OK_STATUS; } @Override protected ItemsFilter createFilter() { System.out.println("createFilter"); return new ItemsFilter() { @Override public boolean matchItem(Object item) { if (item instanceof ERTable) { ERTable table = (ERTable) item; // System.out.println(table.getPhysicalName()); return this.patternMatcher.matches(table.getPhysicalName()); } System.out.println("matchItem"); return false; // return true; } @Override public boolean isConsistentItem(Object item) { System.out.println("isConsistentItem"); return true; } }; } @Override protected Comparator getItemsComparator() { return new Comparator<Object>() { public int compare(Object o1, Object o2) { // TODO Auto-generated method stub return 0; } }; } @Override protected void applyFilter() { super.applyFilter(); } @Override protected void fillContentProvider(AbstractContentProvider contentProvider, ItemsFilter itemsFilter, IProgressMonitor progressMonitor) throws CoreException { for (ERTable table : diagram.getDiagramContents().getContents().getTableSet()) { if (itemsFilter.matchItem(table)) { contentProvider.add(table, itemsFilter); } } } @Override public String getElementName(Object item) { // System.out.println("getElementName"); if (item instanceof ERTable) { ERTable table = (ERTable) item; return table.getLogicalName(); } return null; } }