[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