Fix filter
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/FilterMenuContributor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/FilterMenuContributor.java
deleted file mode 100644
index 3047bbb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/FilterMenuContributor.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.editor.internal.search;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSearchListDialog;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.editor.internal.dialogs.BuiltInTypesTreeViewerProvider;
-import org.eclipse.wst.xsd.editor.internal.dialogs.SelectBuiltInTypesForFilteringDialog;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class FilterMenuContributor {
- private static final String CONST_PREFERED_BUILT_IN_TYPES = XSDEditorPlugin.CONST_PREFERED_BUILT_IN_TYPES;
-
- private XSDTypesSearchListProvider searchListProvider;
- private ComponentSearchListDialog parentDialog;
-
- private MenuManager fMenuManager;
- private ToolItem toolItem;
- private ToolBar filterToolBar;
- private IXSDTypesFilter filter;
-
- private String toolItemIconFile = "icons/filter.gif";
- private String on_off_filter_actionText = "Uncommon built-in types";
- private String configureFilterDialogText = "Filter...";
- private String filterIconFile = "filter.gif";
-
- /**
- * I need to know which dialog i will contribute to and which provider that
- * dialog use,provide it for me here
- * @param searchListProvider
- * @param parentDialog
- */
- public FilterMenuContributor(XSDTypesSearchListProvider searchListProvider,
- ComponentSearchListDialog parentDialog) {
- this.searchListProvider = searchListProvider;
- this.parentDialog = parentDialog;
- }
-
-
-
- /**
- * Give me the toolbar where I will contribute the items to
- * @param toolBar
- * @return
- */
- public ToolItem createToolItem(ToolBar toolBar) {
- this.filterToolBar = toolBar;
- toolItem = new ToolItem(filterToolBar, SWT.PUSH, 0);
-
- GridData data= new GridData();
- data.horizontalAlignment= GridData.END;
- filterToolBar.setLayoutData(data);
-
- fMenuManager = new MenuManager();
- fMenuManager.add(new FilterUncommonBuiltInTypesAction());
- fMenuManager.add(new LaunchConfigFilterDialogAction());
-
- toolItem.setImage(XSDEditorPlugin.getXSDImage(toolItemIconFile));
- toolItem.setToolTipText("Filter uncommon built-in types");
- toolItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Menu menu = fMenuManager.createContextMenu(parentDialog.getShell());
- Rectangle bounds = toolItem.getBounds();
- Point topLeft = new Point(bounds.x, bounds.y + bounds.height);
- topLeft = filterToolBar.toDisplay(topLeft);
- menu.setLocation(topLeft.x, topLeft.y);
- menu.setVisible(true);
- }
- }); ///
-
- // register the filter with the Provider object
- filter = new BuiltInTypesFilter();
- filter.turnOn();
- searchListProvider.setBuiltInFilter(filter);
-
- return toolItem;
- }
-
-
- /**
- * Action for the button to turn on and off Built-In types filter
- */
- private class FilterUncommonBuiltInTypesAction extends Action {
- public FilterUncommonBuiltInTypesAction() {
- super(on_off_filter_actionText, Action.AS_CHECK_BOX);
- }
-
- public void run() {
- // flip states of the filter
- if( filter.isOn() )
- filter.turnOff();
- else
- filter.turnOn();
-
- parentDialog.updateForFilterChange();
- }
- }
-
- private class LaunchConfigFilterDialogAction extends Action {
- public LaunchConfigFilterDialogAction(){
- super(configureFilterDialogText,
- XSDEditorPlugin.getImageDescriptor(filterIconFile, true) );
- }
- public void run(){
- Shell shell = Display.getCurrent().getActiveShell();
-
- BuiltInTypesTreeViewerProvider provider =
- new BuiltInTypesTreeViewerProvider();
-
- SelectBuiltInTypesForFilteringDialog typeFilterDialog =
- new SelectBuiltInTypesForFilteringDialog(shell,
- provider.getLabelProvider(), provider.getContentProvider());
-
- List allBuiltInTypes = BuiltInTypesTreeViewerProvider.getAllBuiltInTypes();
- typeFilterDialog.setInput(allBuiltInTypes);
-
- IPreferenceStore store = XSDEditorPlugin.getPlugin().getPreferenceStore();
- String listString = store.getString(CONST_PREFERED_BUILT_IN_TYPES);
-
- Object[] selectedBuiltInTypes =
- SelectBuiltInTypesForFilteringDialog.getSelectedBuiltInTypesFromString(listString,
- allBuiltInTypes).toArray();
-
- typeFilterDialog.setInitialSelections(selectedBuiltInTypes);
-
- typeFilterDialog.create();
- //typeFilter.getTreeViewer().setSorter(new ViewerSorter());
-
- if (typeFilterDialog.open() == Window.OK){
- /* we don't use getResult() because it also returns grayed
- * elements */
- selectedBuiltInTypes = typeFilterDialog.getResult();
-
- // removed grayed checked elements (parent node)
- List nonGrayItems = new ArrayList();
- for(int i = 0; i < selectedBuiltInTypes.length; i++ ){
- if ( selectedBuiltInTypes[i] instanceof ComponentSpecification){
- nonGrayItems.add(selectedBuiltInTypes[i]);
- }
- }
- selectedBuiltInTypes = nonGrayItems.toArray();
-
- String newlySelectionToBeStored =
- SelectBuiltInTypesForFilteringDialog.getTypesListInString(selectedBuiltInTypes);
- store.setValue(CONST_PREFERED_BUILT_IN_TYPES, newlySelectionToBeStored);
-
- parentDialog.updateForFilterChange();
- }
- }
- }
-
- /**
- * This is a concrete filter, used to filter out built-in types
- * Register it with a provider to use it.
- */
- private class BuiltInTypesFilter implements IXSDTypesFilter{
-
- private static final String BUILT_IN_TYPES_TARGET_NAMESPACE = "http://www.w3.org/2001/XMLSchema";
- private static final String LIST_SEP = SelectBuiltInTypesForFilteringDialog.CUSTOM_LIST_SEPARATOR;
- private IPreferenceStore store = XSDEditorPlugin.getPlugin().getPreferenceStore();
-
- /**
- * True is the Filter is currently turned on, false otherwise
- */
- public boolean currentStatus = true;
-
- private String selectedBuiltInTypes;
-
- /**
- * Give me the name of the built-in type, i will say whether or not
- * to filter it out.
- * Note: I will say no/false whenever I am not sure..
- */
- public boolean shouldFilterOut(Object o) {
- // if the I am turned on
- if ( currentStatus ){
-
- // selectedBuiltInTypes must always contain a trail LIST_SEP
- // at the end for the filter to work properly
- selectedBuiltInTypes =
- store.getString(CONST_PREFERED_BUILT_IN_TYPES);
-
- if ( o instanceof XSDTypeDefinition){
- XSDTypeDefinition td = (XSDTypeDefinition) o;
- /* if the targetname space indicates this is of built-in types AND
- * the name is not in the allowed list (not-filter list) then
- * it should be filtered
- */
- if ( td.getTargetNamespace().equals(BUILT_IN_TYPES_TARGET_NAMESPACE) &&
- selectedBuiltInTypes.indexOf(td.getName() + LIST_SEP) == -1 ){
- return true;
- }
- }
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.xsd.adt.search.IXSDTypesFilter#turnOn()
- */
- public void turnOn() {
- currentStatus = true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.xsd.adt.search.IXSDTypesFilter#turnOff()
- */
- public void turnOff() {
- currentStatus = false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.xsd.adt.search.IXSDTypesFilter#isOn()
- */
- public boolean isOn() {
- return currentStatus;
- }
-
- }
-
- public void setConfigureFilterDialogText(String configureFilterDialogText) {
- this.configureFilterDialogText = configureFilterDialogText;
- }
-
- public void setFilterIconFile(String filterIconFile) {
- this.filterIconFile = filterIconFile;
- }
-
- public void setOn_off_filter_actionText(String on_off_action) {
- this.on_off_filter_actionText = on_off_action;
- }
-
- public void setToolItemIconFile(String toolItemIconFile) {
- this.toolItemIconFile = toolItemIconFile;
- }
-}