diff options
author | Uwe Stieber | 2013-06-14 08:58:30 +0000 |
---|---|---|
committer | Uwe Stieber | 2013-06-14 08:58:30 +0000 |
commit | cdbddf60bf8200bcc9cc67c1cfe065dfe5913600 (patch) | |
tree | e8bdc0cb1624af5be714a7c5db66a0d20ca3e41d /target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src | |
parent | 442a2c185e22c34b4d1d81a58fca716fd79b8346 (diff) | |
download | org.eclipse.tcf-cdbddf60bf8200bcc9cc67c1cfe065dfe5913600.tar.gz org.eclipse.tcf-cdbddf60bf8200bcc9cc67c1cfe065dfe5913600.tar.xz org.eclipse.tcf-cdbddf60bf8200bcc9cc67c1cfe065dfe5913600.zip |
Target Explorer: Fix find: General options missed "Wrap". Fixed search wrapping.
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src')
8 files changed, 79 insertions, 104 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.java index c94aae289..4667eac6f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.java @@ -176,7 +176,6 @@ public class Messages extends NLS { public static String GeneralSearchable_CaseSensitive; public static String GeneralSearchable_FindLabel; public static String GeneralSearchable_GeneralOptions; - public static String GeneralSearchable_PreciseMatching; public static String TerminateHandler_terminateFailed; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.properties b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.properties index b0e7a07f5..f932679dd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.properties +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/nls/Messages.properties @@ -128,8 +128,7 @@ GeneralInformationPage_User=User: GeneralSearchable_CaseSensitive=Case sensitive GeneralSearchable_FindLabel=Find: -GeneralSearchable_GeneralOptions=General search options -GeneralSearchable_PreciseMatching=Precise matching +GeneralSearchable_GeneralOptions=General options TerminateHandler_terminateFailed=Failed to terminate process {0}. diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/GeneralSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/GeneralSearchable.java index f2e86f850..52f572668 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/GeneralSearchable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/GeneralSearchable.java @@ -27,6 +27,7 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; import org.eclipse.tcf.te.ui.controls.BaseEditBrowseTextControl; import org.eclipse.tcf.te.ui.interfaces.ISearchMatcher; +import org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog; import org.eclipse.tcf.te.ui.utils.AbstractSearchable; /** @@ -36,32 +37,25 @@ import org.eclipse.tcf.te.ui.utils.AbstractSearchable; public class GeneralSearchable extends AbstractSearchable { // The keys to access the options stored in the dialog settings. private static final String TARGET_NAME = "PM.TargetName"; //$NON-NLS-1$ - private static final String MATCH_PRECISE = "PM.MatchPrecise"; //$NON-NLS-1$ private static final String CASE_SENSITIVE = "PM.CaseSensitive"; //$NON-NLS-1$ // The case sensitive check box. private Button fBtnCase; - // The matching rule check box. - private Button fBtnMatch; // The input field for searching conditions. private BaseEditBrowseTextControl fSearchField; // The current target names. private String fTargetName; // Whether it is case sensitive private boolean fCaseSensitive; - // Whether it is precise matching. - private boolean fMatchPrecise; - /* - * (non-Javadoc) - * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#createCommonPart(org.eclipse.swt.widgets.Composite) + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#createCommonPart(org.eclipse.tcf.te.ui.internal.utils.TreeViewerSearchDialog, org.eclipse.swt.widgets.Composite) */ @Override - public void createCommonPart(Composite parent) { + public void createCommonPart(TreeViewerSearchDialog dialog, Composite parent) { Composite composite = new Composite(parent, SWT.NONE); - GridLayout glayout = new GridLayout(3, false); - glayout.marginHeight = 0; - glayout.marginWidth = 0; - composite.setLayout(glayout); + GridLayout layout = new GridLayout(3, false); + layout.marginHeight = 0; layout.marginWidth = 0; + composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // Searching field. @@ -84,19 +78,19 @@ public class GeneralSearchable extends AbstractSearchable { searchTextModified(); } }); - + SelectionListener l = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { optionChecked(e); } }; - + Group group = new Group(parent, SWT.NONE); group.setText(Messages.GeneralSearchable_GeneralOptions); group.setLayout(new GridLayout(2, true)); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - + // Case sensitive fBtnCase = new Button(group, SWT.CHECK); fBtnCase.setText(Messages.GeneralSearchable_CaseSensitive); @@ -104,14 +98,9 @@ public class GeneralSearchable extends AbstractSearchable { fBtnCase.setLayoutData(data); fBtnCase.addSelectionListener(l); - // Matching precisely - fBtnMatch = new Button(group, SWT.CHECK); - fBtnMatch.setText(Messages.GeneralSearchable_PreciseMatching); - data = new GridData(GridData.FILL_HORIZONTAL); - fBtnMatch.setLayoutData(data); - fBtnMatch.addSelectionListener(l); + dialog.createSearchDirectionOptions(group); } - + /** * The text for searching is modified. */ @@ -119,10 +108,10 @@ public class GeneralSearchable extends AbstractSearchable { fireOptionChanged(); fTargetName = fSearchField.getEditFieldControlText().trim(); } - + /** * Handling the event that a button is selected and checked. - * + * * @param e The selection event. */ protected void optionChecked(SelectionEvent e) { @@ -130,13 +119,9 @@ public class GeneralSearchable extends AbstractSearchable { if (src == fBtnCase) { fCaseSensitive = fBtnCase.getSelection(); } - else if (src == fBtnMatch) { - fMatchPrecise = fBtnMatch.getSelection(); - } } - /* - * (non-Javadoc) + /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#isInputValid() */ @Override @@ -144,8 +129,7 @@ public class GeneralSearchable extends AbstractSearchable { return fSearchField.isValid(); } - /* - * (non-Javadoc) + /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#restoreValues(org.eclipse.jface.dialogs.IDialogSettings) */ @Override @@ -153,8 +137,6 @@ public class GeneralSearchable extends AbstractSearchable { if(settings != null) { fCaseSensitive = settings.getBoolean(CASE_SENSITIVE); fBtnCase.setSelection(fCaseSensitive); - fMatchPrecise = settings.getBoolean(MATCH_PRECISE); - fBtnMatch.setSelection(fMatchPrecise); fTargetName = settings.get(TARGET_NAME); if (fTargetName != null) { fSearchField.setEditFieldControlText(fTargetName); @@ -162,11 +144,9 @@ public class GeneralSearchable extends AbstractSearchable { } else { fCaseSensitive = false; - fMatchPrecise = false; fTargetName = null; } fBtnCase.setSelection(fCaseSensitive); - fBtnMatch.setSelection(fMatchPrecise); if (fTargetName != null) { fSearchField.setEditFieldControlText(fTargetName); } @@ -180,7 +160,6 @@ public class GeneralSearchable extends AbstractSearchable { public void persistValues(IDialogSettings settings) { if(settings != null) { settings.put(CASE_SENSITIVE, fCaseSensitive); - settings.put(MATCH_PRECISE, fMatchPrecise); settings.put(TARGET_NAME, fTargetName); } } @@ -191,9 +170,9 @@ public class GeneralSearchable extends AbstractSearchable { */ @Override public ISearchMatcher getMatcher() { - return new ProcessNodeGeneralMatcher(fCaseSensitive, fMatchPrecise, fTargetName); + return new ProcessNodeGeneralMatcher(fCaseSensitive, fTargetName); } - + /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#getPreferredSize() */ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessBaseSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessBaseSearchable.java index be97aa345..165236639 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessBaseSearchable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessBaseSearchable.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved. + * Copyright (c) 2011, 2013 Wind River Systems, Inc. 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 @@ -9,18 +9,14 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.processes.ui.search; +import org.eclipse.core.runtime.Assert; import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.tcf.te.ui.forms.FormLayoutFactory; +import org.eclipse.swt.widgets.Group; import org.eclipse.tcf.te.ui.interfaces.ISearchMatcher; import org.eclipse.tcf.te.ui.utils.AbstractSearchable; -import org.eclipse.ui.forms.events.ExpansionEvent; -import org.eclipse.ui.forms.events.IExpansionListener; -import org.eclipse.ui.forms.widgets.ExpandableComposite; -import org.eclipse.ui.forms.widgets.Section; /** * The base searchable that provides common methods for its subclasses. @@ -31,46 +27,29 @@ import org.eclipse.ui.forms.widgets.Section; public abstract class ProcessBaseSearchable extends AbstractSearchable implements ISearchMatcher { /** - * Create a collapseable section with the specified title and return the - * content composite. + * Create a group with the specified title. * - * @param parent The parent where the section is to be created. - * @return The content composite. + * @param parent The parent where the group is to be created. + * @return The group composite. */ - protected Composite createSection(Composite parent) { - Section section = new Section(parent, ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT); - section.setText(getSectionTitle()); - section.setLayout(FormLayoutFactory.createSectionClientGridLayout(false, 2)); - GridData layoutData = new GridData(GridData.FILL_HORIZONTAL); - section.setLayoutData(layoutData); + protected Composite createGroup(Composite parent) { + Assert.isNotNull(parent); - final Composite client = new Composite(section, SWT.NONE); - client.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - client.setBackground(section.getBackground()); - section.setClient(client); + Group group = new Group(parent, SWT.NONE); + group.setText(getGroupTitle()); + group.setLayout(new GridLayout()); + group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + group.setBackground(parent.getBackground()); - section.addExpansionListener(new IExpansionListener(){ - @Override - public void expansionStateChanging(ExpansionEvent e) { - } - @Override - public void expansionStateChanged(ExpansionEvent e) { - Shell shell = client.getShell(); - boolean state = e.getState(); - int client_height = client.getSize().y; - Point p = shell.getSize(); - p.y = state ? p.y + client_height : p.y - client_height; - shell.setSize(p.x, p.y); - }}); - return client; + return group; } /** - * Returns the section title. + * Returns the group title. * - * @return The section title. + * @return The group title. */ - protected abstract String getSectionTitle(); + protected abstract String getGroupTitle(); /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.interfaces.ISearchable#getMatcher() diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessNodeGeneralMatcher.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessNodeGeneralMatcher.java index da7db2a43..b3c2d05a5 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessNodeGeneralMatcher.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessNodeGeneralMatcher.java @@ -20,8 +20,6 @@ import org.eclipse.tcf.te.ui.utils.StringMatcher; public class ProcessNodeGeneralMatcher implements ISearchMatcher { // Whether it is case sensitive private boolean fCaseSensitive; - // Whether it is precise matching. - private boolean fMatchPrecise; // The string matcher for matching. private StringMatcher fStringMatcher; // The label provider used to get a text for a process. @@ -33,16 +31,12 @@ public class ProcessNodeGeneralMatcher implements ISearchMatcher { * Constructor with options. * * @param caseSensitive - * @param matchPrecise * @param targetName */ - public ProcessNodeGeneralMatcher(boolean caseSensitive, boolean matchPrecise, String targetName) { + public ProcessNodeGeneralMatcher(boolean caseSensitive, String targetName) { fCaseSensitive = caseSensitive; fTargetName = targetName; - fMatchPrecise = matchPrecise; - if (!fMatchPrecise) { - fStringMatcher = new StringMatcher(fTargetName, !fCaseSensitive, false); - } + fStringMatcher = new StringMatcher(fTargetName, !fCaseSensitive, false); } /* @@ -56,9 +50,6 @@ public class ProcessNodeGeneralMatcher implements ISearchMatcher { IProcessContextNode node = (IProcessContextNode) context; String text = labelProvider.getText(node); if (text != null) { - if (fMatchPrecise) { - return fCaseSensitive ? text.equals(fTargetName) : text.equalsIgnoreCase(fTargetName); - } return fStringMatcher.match(text); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java index f62f79a1c..06b26b022 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java @@ -111,6 +111,34 @@ public class ProcessSearchable extends CompositeSearchable { return message; } + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.interfaces.ISearchable#getCustomMessage(java.lang.Object, java.lang.String) + */ + @Override + public String getCustomMessage(final Object rootElement, final String key) { + final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + + if (rootElement instanceof IRuntimeModel) { + Runnable runnable = new Runnable() { + @Override + public void run() { + if (rootElement instanceof IRuntimeModel) { + node.set(((IRuntimeModel)rootElement).getPeerModel()); + } + } + }; + + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + } + else if (rootElement != null) { + node.set(rootElement instanceof IAdaptable ? (IPeerModel)((IAdaptable)rootElement).getAdapter(IPeerModel.class) : (IPeerModel)Platform.getAdapterManager().getAdapter(rootElement, IPeerModel.class)); + } + + String message = Messages.getStringDelegated(node.get(), key); + return message; + } + /** * Get a name representation for each process node. * diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessStateSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessStateSearchable.java index 285a37b6e..e303581d6 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessStateSearchable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessStateSearchable.java @@ -23,6 +23,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; +import org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog; /** * The searchable that provides a UI to collect and test @@ -64,19 +65,18 @@ public class ProcessStateSearchable extends ProcessBaseSearchable { // The current selected states expressed in the above characters. private String fStates; - /* - * (non-Javadoc) - * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#createAdvancedPart(org.eclipse.swt.widgets.Composite) + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#createAdvancedPart(org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog, org.eclipse.swt.widgets.Composite) */ @Override - public void createAdvancedPart(Composite parent) { + public void createAdvancedPart(TreeViewerSearchDialog dialog, Composite parent) { SelectionListener l = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { optionChecked(e); } }; - Composite stateComposite = createSection(parent); + Composite stateComposite = createGroup(parent); stateComposite.setLayout(new GridLayout()); fBtnNotRem = new Button(stateComposite, SWT.RADIO); @@ -146,7 +146,7 @@ public class ProcessStateSearchable extends ProcessBaseSearchable { * @see org.eclipse.tcf.te.tcf.processes.ui.search.ProcessBaseSearchable#getSectionTitle() */ @Override - protected String getSectionTitle() { + protected String getGroupTitle() { return Messages.ProcessStateSearchable_SectionChooseState; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessUserSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessUserSearchable.java index cef67fcd2..f86d257c8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessUserSearchable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessUserSearchable.java @@ -27,6 +27,7 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; import org.eclipse.tcf.te.ui.controls.BaseEditBrowseTextControl; +import org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog; /** * The searchable that provides a UI to collect and test @@ -49,19 +50,18 @@ public class ProcessUserSearchable extends ProcessBaseSearchable { private Button fBtnUserSpecified; private BaseEditBrowseTextControl txtUser; - /* - * (non-Javadoc) - * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#createAdvancedPart(org.eclipse.swt.widgets.Composite) + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.utils.AbstractSearchable#createAdvancedPart(org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog, org.eclipse.swt.widgets.Composite) */ @Override - public void createAdvancedPart(Composite parent) { + public void createAdvancedPart(TreeViewerSearchDialog dialog, Composite parent) { SelectionListener l = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { optionChecked(e); } }; - Composite modifiedComp = createSection(parent); + Composite modifiedComp = createGroup(parent); modifiedComp.setLayout(new GridLayout(2, false)); fBtnUserNotRem = new Button(modifiedComp, SWT.RADIO); @@ -115,7 +115,7 @@ public class ProcessUserSearchable extends ProcessBaseSearchable { * @see org.eclipse.tcf.te.tcf.processes.ui.search.ProcessBaseSearchable#getSectionTitle() */ @Override - protected String getSectionTitle() { + protected String getGroupTitle() { return Messages.ProcessUserSearchable_WhoStarted; } |