Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 158941 Details for
Bug 293230
Support SWT.ICON_SEARCH and SWT.ICON_CANCEL for native find/filter/search box for Windows 7 / Windows 10
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
starting patch
search-control.txt (text/plain), 21.39 KB, created by
Shawn Minto
on 2010-02-11 19:31:12 EST
(
hide
)
Description:
starting patch
Filename:
MIME Type:
Creator:
Shawn Minto
Created:
2010-02-11 19:31:12 EST
Size:
21.39 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.workbench >Index: Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java,v >retrieving revision 1.47 >diff -u -r1.47 FilteredTree.java >--- Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java 29 Sep 2009 18:48:33 -0000 1.47 >+++ Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java 11 Feb 2010 23:50:07 -0000 >@@ -26,10 +26,7 @@ > import org.eclipse.jface.viewers.TreeViewer; > import org.eclipse.osgi.util.NLS; > import org.eclipse.swt.SWT; >-import org.eclipse.swt.accessibility.ACC; > import org.eclipse.swt.accessibility.AccessibleAdapter; >-import org.eclipse.swt.accessibility.AccessibleControlAdapter; >-import org.eclipse.swt.accessibility.AccessibleControlEvent; > import org.eclipse.swt.accessibility.AccessibleEvent; > import org.eclipse.swt.events.DisposeEvent; > import org.eclipse.swt.events.DisposeListener; >@@ -41,22 +38,17 @@ > import org.eclipse.swt.events.ModifyListener; > import org.eclipse.swt.events.MouseAdapter; > import org.eclipse.swt.events.MouseEvent; >-import org.eclipse.swt.events.MouseMoveListener; >-import org.eclipse.swt.events.MouseTrackListener; > import org.eclipse.swt.events.SelectionAdapter; > import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.events.TraverseEvent; > import org.eclipse.swt.events.TraverseListener; > import org.eclipse.swt.graphics.Color; > import org.eclipse.swt.graphics.Font; >-import org.eclipse.swt.graphics.Image; >-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.Control; > import org.eclipse.swt.widgets.Display; >-import org.eclipse.swt.widgets.Label; > import org.eclipse.swt.widgets.Text; > import org.eclipse.swt.widgets.Tree; > import org.eclipse.swt.widgets.TreeItem; >@@ -163,6 +155,14 @@ > private boolean useNewLook = false; > > /** >+ * A class that encapsulates the entire search control behavior so that it can be reused. >+ * This is either the native or an emulated control depending on the windowing system used. >+ * >+ * @since 3.6 >+ */ >+ private TextSearchControl searchControl; >+ >+ /** > * Image descriptor for enabled clear button. > */ > private static final String CLEAR_ICON = "org.eclipse.ui.internal.dialogs.CLEAR_ICON"; //$NON-NLS-1$ >@@ -310,15 +310,10 @@ > setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); > > if (showFilterControls) { >- if (!useNewLook || useNativeSearchField(parent)) { >- filterComposite= new Composite(this, SWT.NONE); >- } else { >- filterComposite= new Composite(this, SWT.BORDER); >- filterComposite.setBackground(getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); >- } >- GridLayout filterLayout= new GridLayout(2, false); >- filterLayout.marginHeight= 0; >- filterLayout.marginWidth= 0; >+ filterComposite = new Composite(this, SWT.NONE); >+ GridLayout filterLayout = new GridLayout(2, false); >+ filterLayout.marginHeight = 0; >+ filterLayout.marginWidth = 0; > filterComposite.setLayout(filterLayout); > filterComposite.setFont(parent.getFont()); > >@@ -337,25 +332,6 @@ > createTreeControl(treeComposite, treeStyle); > } > >- private static Boolean useNativeSearchField; >- >- private static boolean useNativeSearchField(Composite composite) { >- if (useNativeSearchField == null) { >- useNativeSearchField = Boolean.FALSE; >- Text testText = null; >- try { >- testText = new Text(composite, SWT.SEARCH | SWT.ICON_CANCEL); >- useNativeSearchField = new Boolean((testText.getStyle() & SWT.ICON_CANCEL) != 0); >- } finally { >- if (testText != null) { >- testText.dispose(); >- } >- } >- >- } >- return useNativeSearchField.booleanValue(); >- } >- > > /** > * Create the filter controls. By default, a text and corresponding tool bar >@@ -368,9 +344,7 @@ > */ > protected Composite createFilterControls(Composite parent) { > createFilterText(parent); >- if (useNewLook) >- createClearTextNew(parent); >- else >+ if (!useNewLook) > createClearTextOld(parent); > if (clearButtonControl != null) { > // initially there is no text to clear >@@ -793,8 +767,8 @@ > // if we're using a field with built in cancel we need to listen for > // default selection changes (which tell us the cancel button has been > // pressed) >- if ((filterText.getStyle() & SWT.ICON_CANCEL) != 0) { >- filterText.addSelectionListener(new SelectionAdapter() { >+ if (searchControl != null) { >+ searchControl.addSelectionListener(new SelectionAdapter() { > /* > * (non-Javadoc) > * >@@ -803,6 +777,8 @@ > public void widgetDefaultSelected(SelectionEvent e) { > if (e.detail == SWT.ICON_CANCEL) > clearText(); >+ if (e.detail == SWT.ICON_SEARCH) >+ textChanged(); > } > }); > } >@@ -826,11 +802,19 @@ > * @since 3.3 > */ > protected Text doCreateFilterText(Composite parent) { >- if (!useNewLook || useNativeSearchField(parent)) { >+ if (!useNewLook) { > return new Text(parent, SWT.SINGLE | SWT.BORDER | SWT.SEARCH > | SWT.ICON_CANCEL); > } >- return new Text(parent, SWT.SINGLE); >+ searchControl = new TextSearchControl(parent, true); >+ if (filterComposite == parent && filterComposite.getChildren().length == 1) { >+ // remove the extra composite that was created if nothing has been added to it >+ // needed for backwards compatibility >+ searchControl.getComposite().setParent(this); >+ filterComposite.dispose(); >+ filterComposite = searchControl.getComposite(); >+ } >+ return searchControl.getTextControl(); > } > > private String previousFilterText; >@@ -871,8 +855,10 @@ > */ > public void setBackground(Color background) { > super.setBackground(background); >- if (filterComposite != null && (!useNewLook || useNativeSearchField(filterComposite))) { >+ if (filterComposite != null && !useNewLook) { > filterComposite.setBackground(background); >+ } else if(searchControl != null) { >+ searchControl.setBackground(background); > } > if (filterToolBar != null && filterToolBar.getControl() != null) { > filterToolBar.getControl().setBackground(background); >@@ -915,96 +901,6 @@ > } > > /** >- * Create the button that clears the text. >- * >- * @param parent parent <code>Composite</code> of toolbar button >- */ >- private void createClearTextNew(Composite parent) { >- // only create the button if the text widget doesn't support one >- // natively >- if ((filterText.getStyle() & SWT.ICON_CANCEL) == 0) { >- final Image inactiveImage= JFaceResources.getImageRegistry().getDescriptor(DISABLED_CLEAR_ICON).createImage(); >- final Image activeImage= JFaceResources.getImageRegistry().getDescriptor(CLEAR_ICON).createImage(); >- final Image pressedImage= new Image(getDisplay(), activeImage, SWT.IMAGE_GRAY); >- >- final Label clearButton= new Label(parent, SWT.NONE); >- clearButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); >- clearButton.setImage(inactiveImage); >- clearButton.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); >- clearButton.setToolTipText(WorkbenchMessages.FilteredTree_ClearToolTip); >- clearButton.addMouseListener(new MouseAdapter() { >- private MouseMoveListener fMoveListener; >- >- public void mouseDown(MouseEvent e) { >- clearButton.setImage(pressedImage); >- fMoveListener= new MouseMoveListener() { >- private boolean fMouseInButton= true; >- >- public void mouseMove(MouseEvent e) { >- boolean mouseInButton= isMouseInButton(e); >- if (mouseInButton != fMouseInButton) { >- fMouseInButton= mouseInButton; >- clearButton.setImage(mouseInButton ? pressedImage : inactiveImage); >- } >- } >- }; >- clearButton.addMouseMoveListener(fMoveListener); >- } >- >- public void mouseUp(MouseEvent e) { >- if (fMoveListener != null) { >- clearButton.removeMouseMoveListener(fMoveListener); >- fMoveListener= null; >- boolean mouseInButton= isMouseInButton(e); >- clearButton.setImage(mouseInButton ? activeImage : inactiveImage); >- if (mouseInButton) { >- clearText(); >- filterText.setFocus(); >- } >- } >- } >- >- private boolean isMouseInButton(MouseEvent e) { >- Point buttonSize = clearButton.getSize(); >- return 0 <= e.x && e.x < buttonSize.x && 0 <= e.y && e.y < buttonSize.y; >- } >- }); >- clearButton.addMouseTrackListener(new MouseTrackListener() { >- public void mouseEnter(MouseEvent e) { >- clearButton.setImage(activeImage); >- } >- >- public void mouseExit(MouseEvent e) { >- clearButton.setImage(inactiveImage); >- } >- >- public void mouseHover(MouseEvent e) { >- } >- }); >- clearButton.addDisposeListener(new DisposeListener() { >- public void widgetDisposed(DisposeEvent e) { >- inactiveImage.dispose(); >- activeImage.dispose(); >- pressedImage.dispose(); >- } >- }); >- clearButton.getAccessible().addAccessibleListener( >- new AccessibleAdapter() { >- public void getName(AccessibleEvent e) { >- e.result= WorkbenchMessages.FilteredTree_AccessibleListenerClearButton; >- } >- }); >- clearButton.getAccessible().addAccessibleControlListener( >- new AccessibleControlAdapter() { >- public void getRole(AccessibleControlEvent e) { >- e.detail= ACC.ROLE_PUSHBUTTON; >- } >- }); >- this.clearButtonControl= clearButton; >- } >- } >- >- /** > * Clears the text in the filter text widget. > */ > protected void clearText() { >Index: Eclipse UI/org/eclipse/ui/dialogs/TextSearchControl.java >=================================================================== >RCS file: Eclipse UI/org/eclipse/ui/dialogs/TextSearchControl.java >diff -N Eclipse UI/org/eclipse/ui/dialogs/TextSearchControl.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI/org/eclipse/ui/dialogs/TextSearchControl.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,336 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.ui.dialogs; >+ >+import java.util.HashSet; >+import java.util.Iterator; >+import java.util.Set; >+import org.eclipse.jface.layout.GridLayoutFactory; >+import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.jface.resource.JFaceResources; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.ACC; >+import org.eclipse.swt.accessibility.AccessibleAdapter; >+import org.eclipse.swt.accessibility.AccessibleControlAdapter; >+import org.eclipse.swt.accessibility.AccessibleControlEvent; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.events.ModifyEvent; >+import org.eclipse.swt.events.ModifyListener; >+import org.eclipse.swt.events.MouseAdapter; >+import org.eclipse.swt.events.MouseEvent; >+import org.eclipse.swt.events.MouseMoveListener; >+import org.eclipse.swt.events.MouseTrackListener; >+import org.eclipse.swt.events.SelectionEvent; >+import org.eclipse.swt.events.SelectionListener; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.swt.graphics.Point; >+import org.eclipse.swt.layout.GridData; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Event; >+import org.eclipse.swt.widgets.Label; >+import org.eclipse.swt.widgets.Text; >+import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.internal.WorkbenchMessages; >+import org.eclipse.ui.plugin.AbstractUIPlugin; >+ >+public class TextSearchControl { >+ >+ /** >+ * Image descriptor for enabled clear button. >+ */ >+ private static final String CLEAR_ICON = "org.eclipse.ui.internal.dialogs.CLEAR_ICON"; //$NON-NLS-1$ >+ >+ /** >+ * Image descriptor for enabled clear button. >+ */ >+ private static final String FIND_ICON = "org.eclipse.ui.internal.dialogs.FIND_ICON"; //$NON-NLS-1$ >+ >+ /** >+ * Get image descriptors for the clear button. >+ */ >+ static { >+ ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PlatformUI.PLUGIN_ID, >+ "$nl$/icons/full/etool16/clear_co.gif"); //$NON-NLS-1$ >+ if (descriptor != null) { >+ JFaceResources.getImageRegistry().put(CLEAR_ICON, descriptor); >+ } >+ >+ descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PlatformUI.PLUGIN_ID, >+ "$nl$/icons/full/etool16/find.png"); //$NON-NLS-1$ >+ if (descriptor != null) { >+ JFaceResources.getImageRegistry().put(FIND_ICON, descriptor); >+ } >+ } >+ >+ private final Text textControl; >+ >+ private Control clearControl; >+ >+ private Control findControl; >+ >+ private final boolean automaticFind; >+ >+ private final Set selectionListeners = new HashSet(); >+ >+ private Boolean useNativeSearchField; >+ >+ private Composite composite; >+ >+ public TextSearchControl(Composite parent, boolean automaticFind) { >+ this.automaticFind = automaticFind; >+ this.composite = parent; >+ >+ int textStyle = SWT.SINGLE; >+ int numColumns = 1; >+ if (useNativeSearchField(automaticFind)) { >+ if (automaticFind) { >+ textStyle |= SWT.SEARCH | SWT.ICON_CANCEL; >+ } else { >+ textStyle |= SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL; >+ } >+ composite = new Composite(parent, SWT.NONE); >+ } else { >+ this.composite = new Composite(parent, SWT.BORDER); >+ composite.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); >+ composite.setFont(parent.getFont()); >+ numColumns = 2; >+ if (!automaticFind) { >+ numColumns += 1; >+ } >+ } >+ GridLayoutFactory.swtDefaults().margins(0, 0).extendedMargins(0, 0, 0, 0).numColumns(numColumns).applyTo( >+ composite); >+ >+ textControl = new Text(composite, textStyle); >+ >+ GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); >+ textControl.setLayoutData(gridData); >+ >+ if (!useNativeSearchField(automaticFind)) { >+ findControl = createLabelButtonControl(composite, textControl, JFaceResources >+ .getImageRegistry().getDescriptor(FIND_ICON), >+ WorkbenchMessages.FilteredTree_AccessibleListenerFindButton, >+ WorkbenchMessages.FilteredTree_FindToolTip, SWT.ICON_SEARCH); >+ clearControl = createLabelButtonControl(composite, textControl, JFaceResources.getImageRegistry() >+ .getDescriptor(CLEAR_ICON), WorkbenchMessages.FilteredTree_AccessibleListenerClearButton, >+ WorkbenchMessages.FilteredTree_ClearToolTip, SWT.ICON_CANCEL); >+ addModifyListener(new ModifyListener() { >+ >+ public void modifyText(ModifyEvent e) { >+ updateButtonVisibilityAndEnablement(); >+ >+ } >+ }); >+ updateButtonVisibilityAndEnablement(); >+ } >+ } >+ >+ private boolean useNativeSearchField(boolean automaticFind) { >+ if (composite != null) { >+ if (useNativeSearchField == null) { >+ useNativeSearchField = Boolean.FALSE; >+ Text testText = null; >+ try { >+ int style = SWT.SEARCH | SWT.ICON_CANCEL; >+ if (automaticFind) { >+ style |= SWT.ICON_SEARCH; >+ } >+ testText = new Text(composite, style); >+ useNativeSearchField = new Boolean((testText.getStyle() & SWT.ICON_CANCEL) != 0 >+ && (!automaticFind || (testText.getStyle() & SWT.ICON_SEARCH) != 0)); >+ } finally { >+ if (testText != null) { >+ testText.dispose(); >+ } >+ } >+ >+ } >+ } else { >+ useNativeSearchField = Boolean.FALSE; >+ } >+ return useNativeSearchField.booleanValue(); >+ } >+ >+ private Control createLabelButtonControl(Composite parent, final Text textControl, >+ ImageDescriptor activeImageDescriptor, final String accessibilityText, String toolTipText, final int detail) { >+ final Image activeImage = activeImageDescriptor.createImage(); >+ final Image inactiveImage = new Image(parent.getDisplay(), activeImage, SWT.IMAGE_GRAY); >+ final Image pressedImage = inactiveImage; >+ >+ final Label labelButton = new Label(parent, SWT.NONE); >+ labelButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); >+ labelButton.setImage(inactiveImage); >+ labelButton.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); >+ labelButton.setToolTipText(toolTipText); >+ labelButton.addMouseListener(new MouseAdapter() { >+ private MouseMoveListener fMoveListener; >+ >+ public void mouseDown(MouseEvent e) { >+ labelButton.setImage(pressedImage); >+ fMoveListener = new MouseMoveListener() { >+ private boolean fMouseInButton = true; >+ >+ public void mouseMove(MouseEvent e) { >+ boolean mouseInButton = isMouseInButton(e); >+ if (mouseInButton != fMouseInButton) { >+ fMouseInButton = mouseInButton; >+ labelButton.setImage(mouseInButton ? pressedImage : inactiveImage); >+ } >+ } >+ }; >+ labelButton.addMouseMoveListener(fMoveListener); >+ } >+ >+ public void mouseUp(MouseEvent e) { >+ if (fMoveListener != null) { >+ labelButton.removeMouseMoveListener(fMoveListener); >+ fMoveListener = null; >+ boolean mouseInButton = isMouseInButton(e); >+ labelButton.setImage(mouseInButton ? activeImage : inactiveImage); >+ if (mouseInButton) { >+ if (textControl.isEnabled() && textControl.getText().length() > 0) { >+ notifySelectionChanged(detail); >+ } >+ } >+ } >+ } >+ >+ private boolean isMouseInButton(MouseEvent e) { >+ Point buttonSize = labelButton.getSize(); >+ return 0 <= e.x && e.x < buttonSize.x && 0 <= e.y && e.y < buttonSize.y; >+ } >+ }); >+ >+ labelButton.addMouseTrackListener(new MouseTrackListener() { >+ public void mouseEnter(MouseEvent e) { >+ if (labelButton.getImage() != activeImage) { >+ labelButton.setImage(activeImage); >+ } >+ } >+ >+ public void mouseExit(MouseEvent e) { >+ if (labelButton.getImage() != inactiveImage) { >+ labelButton.setImage(inactiveImage); >+ } >+ } >+ >+ public void mouseHover(MouseEvent e) { >+ } >+ }); >+ >+ labelButton.getAccessible().addAccessibleListener(new AccessibleAdapter() { >+ public void getName(AccessibleEvent e) { >+ e.result = accessibilityText; >+ } >+ }); >+ labelButton.getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() { >+ public void getRole(AccessibleControlEvent e) { >+ e.detail = ACC.ROLE_PUSHBUTTON; >+ } >+ }); >+ return labelButton; >+ } >+ >+ public void addSelectionListener(SelectionListener listener) { >+ textControl.addSelectionListener(listener); >+ selectionListeners.add(listener); >+ } >+ >+ public void removeSelectionListener(SelectionListener listener) { >+ textControl.removeSelectionListener(listener); >+ selectionListeners.remove(listener); >+ } >+ >+ public void addModifyListener(ModifyListener listener) { >+ textControl.addModifyListener(listener); >+ } >+ >+ public void removeModifyListener(ModifyListener listener) { >+ textControl.removeModifyListener(listener); >+ } >+ >+ private void notifySelectionChanged(int detail) { >+ if (useNativeSearchField(automaticFind)) { >+ // notification should happen via the widgets selection listener >+ return; >+ } >+ Event event = new Event(); >+ event.detail = detail; >+ event.widget = textControl; >+ event.display = textControl.getDisplay(); >+ >+ SelectionEvent e = new SelectionEvent(event); >+ for (Iterator itr = selectionListeners.iterator(); itr.hasNext();) { >+ ((SelectionListener) itr.next()).widgetDefaultSelected(e); >+ } >+ } >+ >+ private void updateButtonVisibilityAndEnablement() { >+ if (textControl != null && !textControl.isDisposed()) { >+ boolean hasText = textControl.getText().length() > 0; >+ >+ setFindButtonVisibility(!(hasText && automaticFind)); >+ setFindButtonEnablement(hasText); >+ >+ setClearButtonVisibility(hasText); >+ setClearButtonEnablement(hasText); >+ } >+ } >+ >+ private void setFindButtonVisibility(boolean visible) { >+ if (findControl != null && !findControl.isDisposed()) { >+ findControl.setVisible(visible); >+ if (findControl.getLayoutData() instanceof GridData) { >+ ((GridData) findControl.getLayoutData()).exclude = !visible; >+ findControl.getParent().layout(); >+ } >+ } >+ } >+ >+ private void setClearButtonVisibility(boolean visible) { >+ if (clearControl != null && !clearControl.isDisposed()) { >+ clearControl.setVisible(visible); >+ if (clearControl.getLayoutData() instanceof GridData) { >+ ((GridData) clearControl.getLayoutData()).exclude = !visible; >+ clearControl.getParent().layout(); >+ } >+ } >+ } >+ >+ private void setClearButtonEnablement(boolean enabled) { >+ if (clearControl != null && !clearControl.isDisposed()) { >+ clearControl.setEnabled(enabled); >+ } >+ } >+ >+ private void setFindButtonEnablement(boolean enabled) { >+ if (findControl != null && !findControl.isDisposed()) { >+ findControl.setEnabled(enabled); >+ } >+ } >+ >+ public Text getTextControl() { >+ return textControl; >+ } >+ >+ public Composite getComposite() { >+ return composite; >+ } >+ >+ public void setBackground(Color color) { >+ if (useNativeSearchField(automaticFind)) { >+ composite.setBackground(color); >+ } >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 293230
:
150430
|
157852
| 158941 |
159558