[jbosstools-commits] JBoss Tools SVN: r42692 - in trunk/vpe/plugins: org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Jul 24 12:02:08 EDT 2012


Author: dmaliarevich
Date: 2012-07-24 12:02:08 -0400 (Tue, 24 Jul 2012)
New Revision: 42692

Added:
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorFieldEditor.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorSelector.java
Modified:
   trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpePreferencesPage.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/VpeStyleUtil.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties
Log:
https://issues.jboss.org/browse/JBIDE-8631 - adding an option for border color.

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java	2012-07-24 14:02:16 UTC (rev 42691)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -18,6 +18,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.resource.StringConverter;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.events.ControlEvent;
@@ -27,6 +28,7 @@
 import org.eclipse.swt.events.ShellAdapter;
 import org.eclipse.swt.events.ShellEvent;
 import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -76,6 +78,7 @@
 import org.jboss.tools.vpe.editor.mozilla.MozillaEditor;
 import org.jboss.tools.vpe.editor.mozilla.MozillaPreview;
 import org.jboss.tools.vpe.editor.mozilla.listener.EditorLoadWindowListener;
+import org.jboss.tools.vpe.editor.util.VpeStyleUtil;
 import org.jboss.tools.vpe.editor.xpl.CustomSashForm;
 import org.jboss.tools.vpe.editor.xpl.CustomSashForm.ICustomSashFormListener;
 import org.jboss.tools.vpe.editor.xpl.EditorSettings;
@@ -1113,9 +1116,8 @@
 		 */
 		if (getController() != null) {
 			boolean doVisualRefresh = false;
-			boolean presfShowBorderForUnknownTags = JspEditorPlugin.getDefault()
-			.getPreferenceStore().getBoolean(
-					IVpePreferencesPage.SHOW_BORDER_FOR_UNKNOWN_TAGS);
+			boolean presfShowBorderForUnknownTags = JspEditorPlugin.getDefault().getPreferenceStore()
+					.getBoolean(IVpePreferencesPage.SHOW_BORDER_FOR_UNKNOWN_TAGS);
 			if (presfShowBorderForUnknownTags != getController().getVisualBuilder().isShowBorderForUnknownTags()) {
 				/*
 				 * Templates should be rebuild.
@@ -1124,13 +1126,21 @@
 				doVisualRefresh = true;
 			}
 			
+			RGB rgb = StringConverter.asRGB(JspEditorPlugin.getDefault().getPreferenceStore()
+					.getString(IVpePreferencesPage.SELECTION_VISIBLE_BORDER_COLOR));
+			visualEditor.getXulRunnerEditor().setVisibleSelectedElementColor(VpeStyleUtil.rgbToString(rgb));
+
+			rgb = StringConverter.asRGB(JspEditorPlugin.getDefault().getPreferenceStore()
+					.getString(IVpePreferencesPage.SELECTION_HIDDEN_BORDER_COLOR));
+			visualEditor.getXulRunnerEditor().setHiddenSelectedElementColor(VpeStyleUtil.rgbToString(rgb));
+			
 //			if (presfShowSelectionBar != selectionBar.isVisible()) {
 //				selectionBar.setVisible(presfShowSelectionBar);
 //				doVisualRefresh = true;
 //			}
 	
-			boolean prefsShowNonVisualTags = JspEditorPlugin.getDefault().getPreferenceStore().
-					getBoolean(IVpePreferencesPage.SHOW_NON_VISUAL_TAGS);
+			boolean prefsShowNonVisualTags = JspEditorPlugin.getDefault().getPreferenceStore()
+					.getBoolean(IVpePreferencesPage.SHOW_NON_VISUAL_TAGS);
 			if (prefsShowNonVisualTags != getController().getVisualBuilder().isShowInvisibleTags()) {
 				getController().getVisualBuilder().setShowInvisibleTags(prefsShowNonVisualTags);
 				doVisualRefresh = true;

Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorFieldEditor.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorFieldEditor.java	                        (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorFieldEditor.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ *     Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.preferences;
+
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.jface.preference.PreferenceConverter;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+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;
+
+/**
+ * A field editor for a color type preference.
+ */
+public class VpeColorFieldEditor extends FieldEditor {
+
+	/**
+	 * The color selector, or <code>null</code> if none.
+	 */
+	private VpeColorSelector colorSelector;
+
+	/**
+	 * Creates a new color field editor
+	 */
+	protected VpeColorFieldEditor() {
+		//No default behavior
+	}
+
+	/**
+	 * Creates a color field editor.
+	 * 
+	 * @param name
+	 *            the name of the preference this field editor works on
+	 * @param labelText
+	 *            the label text of the field editor
+	 * @param parent
+	 *            the parent of the field editor's control
+	 */
+	public VpeColorFieldEditor(String name, String labelText, Composite parent) {
+		super(name, labelText, parent);
+	}
+
+	/*
+	 * (non-Javadoc) Method declared on FieldEditor.
+	 */
+	protected void adjustForNumColumns(int numColumns) {
+		((GridData) colorSelector.getButton().getLayoutData()).horizontalSpan = numColumns - 1;
+	}
+
+	/**
+	 * Computes the size of the color image displayed on the button.
+	 * <p>
+	 * This is an internal method and should not be called by clients.
+	 * </p>
+	 * 
+	 * @param window
+	 *            the window to create a GC on for calculation.
+	 * @return Point The image size
+	 *  
+	 */
+	protected Point computeImageSize(Control window) {
+		// Make the image height as high as a corresponding character. This
+		// makes sure that the button has the same size as a "normal" text
+		// button.
+		GC gc = new GC(window);
+		Font f = JFaceResources.getFontRegistry().get(
+				JFaceResources.DEFAULT_FONT);
+		gc.setFont(f);
+		int height = gc.getFontMetrics().getHeight();
+		gc.dispose();
+		Point p = new Point(height * 3 - 6, height);
+		return p;
+	}
+
+	@Override
+	protected void createControl(Composite parent) {
+		GridLayout layout = new GridLayout();
+        layout.numColumns = 3;
+        layout.marginWidth = 0;
+        layout.marginHeight = 0;
+        layout.horizontalSpacing = HORIZONTAL_GAP;
+        /*
+         * Create only 1 top control
+         */
+        Composite container = new Composite(parent, SWT.NONE);
+        container.setLayout(layout);
+        doFillIntoGrid(container, layout.numColumns);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
+	 */
+	protected void doFillIntoGrid(Composite parent, int numColumns) {
+		Control control = getLabelControl(parent);
+		control.setLayoutData(new GridData());
+
+		Button colorButton = getChangeControl(parent);
+		colorButton.setLayoutData(new GridData());
+	}
+
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
+	 */
+	protected void doLoad() {
+		if (colorSelector == null) {
+			return;
+		}
+		colorSelector.setColorValue(PreferenceConverter.getColor(
+				getPreferenceStore(), getPreferenceName()));
+	}
+
+	/*
+	 * (non-Javadoc) Method declared on FieldEditor.
+	 */
+	protected void doLoadDefault() {
+		if (colorSelector == null) {
+			return;
+		}
+		colorSelector.setColorValue(PreferenceConverter.getDefaultColor(
+				getPreferenceStore(), getPreferenceName()));
+	}
+
+	/*
+	 * (non-Javadoc) Method declared on FieldEditor.
+	 */
+	protected void doStore() {
+		PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(),
+				colorSelector.getColorValue());
+	}
+
+	/**
+	 * Get the color selector used by the receiver.
+	 * 
+	 * @return ColorSelector/
+	 */
+	public VpeColorSelector getColorSelector() {
+		return colorSelector;
+	}
+
+	/**
+	 * Returns the change button for this field editor.
+	 * 
+	 * @param parent
+	 *            The control to create the button in if required.
+	 * @return the change button
+	 */
+	protected Button getChangeControl(Composite parent) {
+		if (colorSelector == null) {
+			colorSelector = new VpeColorSelector(parent);
+			colorSelector.addListener(new IPropertyChangeListener() {
+				// forward the property change of the color selector
+				public void propertyChange(PropertyChangeEvent event) {
+					VpeColorFieldEditor.this.fireValueChanged(event.getProperty(),
+							event.getOldValue(), event.getNewValue());
+					setPresentsDefaultValue(false);
+				}
+			});
+
+		} else {
+			checkParent(colorSelector.getButton(), parent);
+		}
+		return colorSelector.getButton();
+	}
+
+	/*
+	 * (non-Javadoc) Method declared on FieldEditor.
+	 */
+	public int getNumberOfControls() {
+		return 1;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean,
+	 *      org.eclipse.swt.widgets.Composite)
+	 */
+	public void setEnabled(boolean enabled, Composite parent) {
+		super.setEnabled(enabled, parent);
+		getChangeControl(parent).setEnabled(enabled);
+	}
+
+}

Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorSelector.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorSelector.java	                        (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpeColorSelector.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ *     Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.preferences;
+
+import org.eclipse.jface.preference.ColorSelector;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.vpe.editor.util.VpeStyleUtil;
+
+public class VpeColorSelector extends ColorSelector {
+
+	private Text colorText; 
+	
+	public VpeColorSelector(Composite parent) {
+		super(parent);
+		colorText = new Text(parent, SWT.NONE);
+		colorText.setEditable(false);
+		colorText.setTextLimit(9);
+		colorText.setText(VpeStyleUtil.rgbToString(getColorValue()));
+	}
+	
+	@Override
+	protected void updateColorImage() {
+		super.updateColorImage();
+		colorText.setText(VpeStyleUtil.rgbToString(getColorValue()));
+	}
+
+	public Text getColorText() {
+		return colorText;
+	}
+	
+}

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpePreferencesPage.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpePreferencesPage.java	2012-07-24 14:02:16 UTC (rev 42691)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/preferences/VpePreferencesPage.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -142,6 +142,12 @@
 		addField(new VpeBooleanFieldEditor(SHOW_RESOURCE_BUNDLES_USAGE_AS_EL,
 				VpeUIMessages.SHOW_RESOURCE_BUNDLES_USAGE_AS_EL,
 				visualAppearanceGroup));
+		
+		addField(new VpeColorFieldEditor(SELECTION_VISIBLE_BORDER_COLOR, 
+				VpeUIMessages.SELECTION_VISIBLE_BORDER_COLOR, visualAppearanceGroup));
+		addField(new VpeColorFieldEditor(SELECTION_HIDDEN_BORDER_COLOR, 
+				VpeUIMessages.SELECTION_HIDDEN_BORDER_COLOR, visualAppearanceGroup));
+		
 		addField(new VpeBooleanFieldEditor(ASK_TAG_ATTRIBUTES_ON_TAG_INSERT,
 				VpeUIMessages.ASK_TAG_ATTRIBUTES_ON_TAG_INSERT,
 				confirmationGroup));

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/VpeStyleUtil.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/VpeStyleUtil.java	2012-07-24 14:02:16 UTC (rev 42691)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/VpeStyleUtil.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -30,6 +30,7 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.swt.graphics.RGB;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IFileEditorInput;
 import org.eclipse.ui.editors.text.ILocationProvider;
@@ -973,4 +974,29 @@
 		}
 		return cssBuilder.toString();
 	}
+	
+	/**
+	 * Method for convert RGB to String
+	 *
+	 * @param rgb RGB color
+	 * @return String color
+	 */
+	public static String rgbToString(RGB rgb) {
+		String colorStr = "#0000FF"; //$NON-NLS-1$
+		if (rgb != null) {
+			colorStr = "#" //$NON-NLS-1$
+					+ (rgb.red < 10 ? "0" : Constants.EMPTY) //$NON-NLS-1$
+					+ Integer.toHexString(rgb.red)
+					+ (rgb.green < 10 ? "0" : Constants.EMPTY) //$NON-NLS-1$
+					+ Integer.toHexString(rgb.green)
+					+ Constants.EMPTY
+					+ (rgb.blue < 10 ? "0" : Constants.EMPTY) //$NON-NLS-1$
+					+ Integer.toHexString(rgb.blue);
+			colorStr = colorStr.toUpperCase();
+		} else {
+			VpePlugin.getDefault().logError("Cannot convert RGB color to string, because it is null"); //$NON-NLS-1$
+		}
+		return colorStr;
+	}
+	// org.jboss.tools.jst.css.dialog.common.Util.getColor(..)
 }
\ No newline at end of file

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java	2012-07-24 14:02:16 UTC (rev 42691)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -134,6 +134,8 @@
 	public static String SHOW_RESOURCE_BUNDLES_USAGE_AS_EL;
 	public static String SHOW_BUNDLES_AS_EL;
 	public static String SHOW_BUNDLES_AS_MESSAGES;
+	public static String SELECTION_VISIBLE_BORDER_COLOR;
+	public static String SELECTION_HIDDEN_BORDER_COLOR;
 	public static String ASK_TAG_ATTRIBUTES_ON_TAG_INSERT;
 	public static String INFORM_WHEN_PROJECT_MIGHT_NOT_BE_CONFIGURED_PROPERLY_FOR_VPE;
 	public static String DEFAULT_VPE_TAB;

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties	2012-07-24 14:02:16 UTC (rev 42691)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties	2012-07-24 16:02:08 UTC (rev 42692)
@@ -118,6 +118,8 @@
 SHOW_TEXT_FORMATTING = Show text formatting bar
 HIDE_TEXT_FORMATTING = Hide text formatting bar
 SHOW_RESOURCE_BUNDLES_USAGE_AS_EL=Show resource bundles usage as EL expressions
+SELECTION_VISIBLE_BORDER_COLOR=Selection border color for visible element:\t
+SELECTION_HIDDEN_BORDER_COLOR=Selection border color for hidden element:\t
 SHOW_BUNDLES_AS_EL=Show bundle's messages as EL expressions
 SHOW_BUNDLES_AS_MESSAGES=Show bundle's messages explicitly
 ASK_TAG_ATTRIBUTES_ON_TAG_INSERT=Ask for tag attributes during tag insert

Modified: trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java	2012-07-24 14:02:16 UTC (rev 42691)
+++ trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java	2012-07-24 16:02:08 UTC (rev 42692)
@@ -59,14 +59,13 @@
 	/**
 	 * color which used for highlight elements which user can see, blue color
 	 */
-	private static final String FLASHER_VISUAL_ELEMENT_COLOR = "#0000ff"; //$NON-NLS-1$
+	private static String visibleSelectedElementColor = "#0000ff"; //$NON-NLS-1$
 
 	/**
 	 * color which used for highlight parent elements for elements which user,
 	 * red color can't see.
 	 */
-	private static final String FLASHER_HIDDEN_ELEMENT_COLOR = "#ff0000"; //$NON-NLS-1$
-
+	private static String hiddenSelectedElementColor = "#ff0000"; //$NON-NLS-1$
 	/**
 	 * Contains name of attribute for inIFLasher drawing
 	 */
@@ -411,18 +410,18 @@
 	
 	private FlasherData prepareFlasherData(nsIDOMNode domNode){
 		nsIDOMElement domElement = getElementForNode(domNode);
-		String selectionBorderColor = FLASHER_VISUAL_ELEMENT_COLOR;
+		String selectionBorderColor = getVisibleSelectedElementColor();
 		if (domElement != null) {
 			if (isVisible(domElement)) {
 				if (domElement.getAttribute(VPE_INVISIBLE_ELEMENT) == null
 						|| (!domElement.getAttribute(VPE_INVISIBLE_ELEMENT)
 								.equals(Boolean.TRUE.toString()))) {
-					selectionBorderColor = FLASHER_VISUAL_ELEMENT_COLOR;
+					selectionBorderColor = getVisibleSelectedElementColor();
 				} else {
-					selectionBorderColor = FLASHER_HIDDEN_ELEMENT_COLOR;
+					selectionBorderColor = getHiddenSelectedElementColor();
 				}			
 			} else {
-				selectionBorderColor = FLASHER_HIDDEN_ELEMENT_COLOR;
+				selectionBorderColor = getHiddenSelectedElementColor();
 				domElement = findVisibleParentElement(domElement);
 			}
 		}
@@ -521,4 +520,21 @@
 		}
 		return keyboardEvent; 
 	}
+
+	public String getVisibleSelectedElementColor() {
+		return visibleSelectedElementColor;
+	}
+
+	public void setVisibleSelectedElementColor(String visibleSelectedElementColor) {
+		XulRunnerEditor.visibleSelectedElementColor = visibleSelectedElementColor;
+	}
+
+	public String getHiddenSelectedElementColor() {
+		return hiddenSelectedElementColor;
+	}
+
+	public void setHiddenSelectedElementColor(String hiddenSelectedElementColor) {
+		XulRunnerEditor.hiddenSelectedElementColor = hiddenSelectedElementColor;
+	}
+	
 }



More information about the jbosstools-commits mailing list