diff options
author | Dani Megert | 2003-10-20 14:36:45 +0000 |
---|---|---|
committer | Dani Megert | 2003-10-20 14:36:45 +0000 |
commit | ab45c472e9dc1cde169161b9a5cccaee13ac22e2 (patch) | |
tree | e9ab8c8aa12e3f174c2d5e97b0759faac6852816 | |
parent | c859d726e8f749fdf3914ee71ab04ff303ccfaf6 (diff) | |
download | eclipse.platform.text-ab45c472e9dc1cde169161b9a5cccaee13ac22e2.tar.gz eclipse.platform.text-ab45c472e9dc1cde169161b9a5cccaee13ac22e2.tar.xz eclipse.platform.text-ab45c472e9dc1cde169161b9a5cccaee13ac22e2.zip |
Implemented feature 45124: Place incremental find status into separate status line item
2 files changed, 104 insertions, 14 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java index 3726d6b6df1..a95048673ef 100644 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java @@ -20,6 +20,8 @@ import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.text.Assert; + import org.eclipse.ui.IActionBars; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchActionConstants; @@ -63,14 +65,35 @@ public class BasicTextEditorActionContributor extends EditorActionBarContributor ITextEditorActionConstants.REVERT }; + /** + * Status field definition. + * @since 3.0 + */ + private static class StatusFieldDef { + + private String category; + private String actionId; + private boolean visible; + private int widthInChars; + + private StatusFieldDef(String category, String actionId, boolean visible, int widthInChars) { + Assert.isNotNull(category); + this.category= category; + this.actionId= actionId; + this.visible= visible; + this.widthInChars= widthInChars; + } + } + /** * The status fields to be set to the editor * @since 2.0 */ - private final static String[][] STATUSFIELDS= { - { ITextEditorActionConstants.STATUS_CATEGORY_ELEMENT_STATE, null }, - { ITextEditorActionConstants.STATUS_CATEGORY_INPUT_MODE, ITextEditorActionDefinitionIds.TOGGLE_OVERWRITE }, - { ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION, ITextEditorActionConstants.GOTO_LINE } + private final static StatusFieldDef[] STATUS_FIELD_DEFS= { + new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_FIND_FIELD, null, false, EditorMessages.getString("Editor.FindIncremental.reverse.name").length() + 15), //$NON-NLS-1$ + new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_ELEMENT_STATE, null, true, StatusLineContributionItem.DEFAULT_WIDTH_IN_CHARS), + new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_INPUT_MODE, ITextEditorActionDefinitionIds.TOGGLE_OVERWRITE, true, StatusLineContributionItem.DEFAULT_WIDTH_IN_CHARS), + new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION, ITextEditorActionConstants.GOTO_LINE, true, StatusLineContributionItem.DEFAULT_WIDTH_IN_CHARS) }; /** @@ -128,8 +151,10 @@ public class BasicTextEditorActionContributor extends EditorActionBarContributor fGotoLine.setActionDefinitionId(ITextEditorActionDefinitionIds.LINE_GOTO); fStatusFields= new HashMap(3); - for (int i= 0; i < STATUSFIELDS.length; i++) - fStatusFields.put(STATUSFIELDS[i], new StatusLineContributionItem(STATUSFIELDS[i][0])); + for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) { + StatusFieldDef fieldDef= STATUS_FIELD_DEFS[i]; + fStatusFields.put(fieldDef, new StatusLineContributionItem(fieldDef.category, fieldDef.visible, fieldDef.widthInChars)); + } } /** @@ -165,8 +190,8 @@ public class BasicTextEditorActionContributor extends EditorActionBarContributor if (fActiveEditorPart instanceof ITextEditorExtension) { ITextEditorExtension extension= (ITextEditorExtension) fActiveEditorPart; - for (int i= 0; i < STATUSFIELDS.length; i++) - extension.setStatusField(null, STATUSFIELDS[i][0]); + for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) + extension.setStatusField(null, STATUS_FIELD_DEFS[i].category); } fActiveEditorPart= part; @@ -184,12 +209,12 @@ public class BasicTextEditorActionContributor extends EditorActionBarContributor fIncrementalFindReverse.setAction(getAction(editor, ITextEditorActionConstants.FIND_INCREMENTAL_REVERSE)); fGotoLine.setAction(getAction(editor, ITextEditorActionConstants.GOTO_LINE)); - for (int i= 0; i < STATUSFIELDS.length; i++) { - StatusLineContributionItem statusField= (StatusLineContributionItem) fStatusFields.get(STATUSFIELDS[i]); - statusField.setActionHandler(getAction(editor, STATUSFIELDS[i][1])); + for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) { if (fActiveEditorPart instanceof ITextEditorExtension) { + StatusLineContributionItem statusField= (StatusLineContributionItem) fStatusFields.get(STATUS_FIELD_DEFS[i]); + statusField.setActionHandler(getAction(editor, STATUS_FIELD_DEFS[i].actionId)); ITextEditorExtension extension= (ITextEditorExtension) fActiveEditorPart; - extension.setStatusField(statusField, STATUSFIELDS[i][0]); + extension.setStatusField(statusField, STATUS_FIELD_DEFS[i].category); } } } @@ -231,8 +256,8 @@ public class BasicTextEditorActionContributor extends EditorActionBarContributor */ public void contributeToStatusLine(IStatusLineManager statusLineManager) { super.contributeToStatusLine(statusLineManager); - for (int i= 0; i < STATUSFIELDS.length; i++) - statusLineManager.add((IContributionItem) fStatusFields.get(STATUSFIELDS[i])); + for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) + statusLineManager.add((IContributionItem)fStatusFields.get(STATUS_FIELD_DEFS[i])); } /* diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IStatusFieldExtension.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IStatusFieldExtension.java new file mode 100644 index 00000000000..51dfd45ba6e --- /dev/null +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IStatusFieldExtension.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.ui.texteditor; + +import org.eclipse.swt.graphics.Image; + +/** + * Extends <code>IStatusField</code> with the following concepts: + * <ul> + * <li>set error text and image</li> + * <li>set tool tip</li> + * <li>control visibility</li> + * </ul> + * + * @see org.eclipse.ui.texteditor.IStatusField + * @since 3.0 + */ +public interface IStatusFieldExtension { + /** + * Sets the text of this status field. + * <p> + * The error text overrides the current text until the error + * text is cleared (set to <code>null</code>). + * </p> + * + * @param text the error text shown in the status field or <code>null</code> to clear + * @see IStatusField#setText(String) + */ + void setErrorText(String text); + + /** + * Sets the error image of this status field. + * <p> + * The error image overrides the current image until the error + * image is cleared (set to <code>null</code>). + * </p> + * + * @param image the error image shown in the status field or <code>null</code> to clear + * @see IStatusField#setImage(Image) + */ + void setErrorImage(Image image); + + /** + * Sets tool tip text for this status field. + * + * @param string the new tool tip text or <code>null</code> to clear + */ + void setToolTipText (String string); + + /** + * Sets whether this status field is visible within the status line. + * + * @param visible <code>true</code> if this item should be visible, <code>false</code> otherwise + */ + void setVisible(boolean visible); +} |