Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/dialog/NavigatorSearchDialog.java')
-rw-r--r--deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/dialog/NavigatorSearchDialog.java274
1 files changed, 0 insertions, 274 deletions
diff --git a/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/dialog/NavigatorSearchDialog.java b/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/dialog/NavigatorSearchDialog.java
deleted file mode 100644
index 67d28b937ed..00000000000
--- a/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/dialog/NavigatorSearchDialog.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Conselleria de Infraestructuras y Transporte, Generalitat
- * de la Comunitat Valenciana . 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: Francisco Javier Cano Muñoz (Prodevelop) - initial api contribution
- *
- ******************************************************************************/
-package org.eclipse.papyrus.navigator.dialog;
-
-import java.util.ArrayList;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.navigator.CommonNavigator;
-
-/**
- * A dialog that allows searching elements in the Model navigator by name.
- *
- * @author <a href="mailto:fjcano@prodevelop.es">Francisco Javier Cano Muñoz</a>
- */
-public class NavigatorSearchDialog extends TrayDialog {
-
- private ITreeContentProvider contentProvider = null;
-
- private ILabelProvider labelProvider = null;
-
- private Object root = null;
-
- private Viewer viewer = null;
-
- private List<Object> matchedObjects = Collections.emptyList();
-
- private Label matchesLabel;
-
- private Text searchText;
-
- private Button backButton;
-
- private Button nextButton;
-
- private Button caseButton;
-
- public NavigatorSearchDialog(Shell shell, CommonNavigator modelNavigator) {
- super(shell);
- IContentProvider cprovider = modelNavigator.getCommonViewer().getContentProvider();
- if(cprovider instanceof ITreeContentProvider) {
- contentProvider = (ITreeContentProvider)cprovider;
- }
- root = modelNavigator.getCommonViewer().getInput();
- viewer = modelNavigator.getCommonViewer();
- labelProvider = (ILabelProvider)modelNavigator.getCommonViewer().getLabelProvider();
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets .Composite)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite background = new Composite(parent, SWT.None);
- GridData bgData = new GridData(GridData.FILL_BOTH);
- bgData.minimumWidth = 300;
- background.setLayoutData(bgData);
- GridLayout bgLayout = new GridLayout();
- bgLayout.numColumns = 2;
- background.setLayout(bgLayout);
-
- createSearchTextComposite(background);
- return background;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse
- * .swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
-
- backButton = createButton(parent, IDialogConstants.BACK_ID, IDialogConstants.BACK_LABEL, false);
- nextButton = createButton(parent, IDialogConstants.NEXT_ID, IDialogConstants.NEXT_LABEL, false);
- createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-
- backButton.setEnabled(false);
- nextButton.setEnabled(false);
-
- nextButton.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- ISelection sel = viewer.getSelection();
- if(!(sel instanceof StructuredSelection)) {
- return;
- }
- StructuredSelection ssel = (StructuredSelection)sel;
-
- int index = matchedObjects.lastIndexOf(ssel.getFirstElement());
- if(index == matchedObjects.size() - 1) {
- index = -1;
- }
- index++;
- viewer.setSelection(new StructuredSelection(matchedObjects.get(index)), true);
- }
-
- });
-
- backButton.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- ISelection sel = viewer.getSelection();
- if(!(sel instanceof StructuredSelection)) {
- return;
- }
- StructuredSelection ssel = (StructuredSelection)sel;
-
- int index = matchedObjects.lastIndexOf(ssel.getFirstElement());
- if(index == 0) {
- index = matchedObjects.size() - 1;
- }
- index--;
- viewer.setSelection(new StructuredSelection(matchedObjects.get(index)), true);
- }
-
- });
- }
-
- private void createSearchTextComposite(Composite background) {
- Label searchLabel = new Label(background, SWT.None);
- searchLabel.setText("Search:");
- searchLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- searchText = new Text(background, SWT.SEARCH);
- searchText.setFocus();
- searchText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- searchText.addKeyListener(getKeyListener());
-
- caseButton = new Button(background, SWT.CHECK);
- caseButton.setText("Case sensitive?");
- GridData caseButtonData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- caseButtonData.horizontalSpan = 2;
- caseButton.setSelection(false);
- caseButton.setLayoutData(caseButtonData);
- caseButton.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- updateMatches();
- }
-
- });
-
- Label resultsLabel = new Label(background, SWT.None);
- resultsLabel.setText("Results:");
- resultsLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- matchesLabel = new Label(background, SWT.None);
- matchesLabel.setText("No matchings.");
- matchesLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
- }
-
- private void updateMatches() {
- if(contentProvider == null && labelProvider == null) {
- return;
- }
-
- String pattern = searchText.getText();
- if(pattern.length() == 0) {
- matchedObjects = Collections.emptyList();
- backButton.setEnabled(false);
- nextButton.setEnabled(false);
- matchesLabel.setText("No matchings.");
- return;
- }
-
- if(!caseButton.getSelection()) {
- pattern = pattern.toUpperCase();
- }
-
- matchedObjects = searchPattern(pattern, Arrays.asList(contentProvider.getElements(root)));
-
- // Update matches label
- matchesLabel.setText(matchedObjects.size() + " matches found");
-
- // Select first match and update buttons
- if(!matchedObjects.isEmpty()) {
- viewer.setSelection(new StructuredSelection(matchedObjects.get(0)), true);
- nextButton.setEnabled(true);
- backButton.setEnabled(true);
- } else {
- nextButton.setEnabled(false);
- backButton.setEnabled(false);
- }
-
- }
-
- private List<Object> searchPattern(String pattern, List<Object> objects) {
- List<Object> matches = new ArrayList<Object>();
-
- List<Object> childs = new ArrayList<Object>();
- String objectLabel;
- boolean caseSensitive = caseButton.getSelection();
- for(Object o : objects) {
- // Search matches in this level
- objectLabel = caseSensitive ? labelProvider.getText(o) : labelProvider.getText(o).toUpperCase();
-
- if(objectLabel.contains(pattern)) {
- matches.add(o);
- }
-
- // Find childs
- childs.addAll(Arrays.asList(contentProvider.getChildren(o)));
- }
-
- if(!childs.isEmpty()) {
- matches.addAll(searchPattern(pattern, childs));
- }
-
- return matches;
- }
-
- protected KeyListener getKeyListener() {
- return new KeyListener() {
-
- public void keyPressed(KeyEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void keyReleased(KeyEvent e) {
- updateMatches();
-
- }
-
- };
- }
-
-}

Back to the top