diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/preference/ColorFontFieldEditor.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/preference/ColorFontFieldEditor.java | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/preference/ColorFontFieldEditor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/preference/ColorFontFieldEditor.java deleted file mode 100644 index f67bbaa28..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/preference/ColorFontFieldEditor.java +++ /dev/null @@ -1 +0,0 @@ -/*******************************************************************************
* Copyright (c) 2004, 2006 Sybase, 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
*
* Contributors:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jsf.facesconfig.ui.preference;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.resource.StringConverter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.FontDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
/**
*
* A field editor for a font type preference.
*
*/
/*package*/ class ColorFontFieldEditor extends FieldEditor {
private static final String ColorFontFieldEditor_ColorPref = "Color"; //$NON-NLS-1$
private static final int NUM_CONTROLS_WHEN_PREVIEWER = 4;
private static final int NUM_CONTROLS_WHEN_NO_PREVIEWER = 3;
/**
*
* The change font button, or <code>null</code> if none
*
* (before creation and after disposal).
*
*/
private Button changeFontButton = null;
/**
*
* The text for the change font button, or <code>null</code>
*
* if missing.
*
*/
private String changeButtonText;
/**
*
* The text for the preview, or <code>null</code> if no preview is desired
*
*/
private String previewText;
/**
*
* Font data for the chosen font button, or <code>null</code> if none.
*
*/
private FontData[] chosenFont;
/**
*
* Font color for the chosen font
*
*/
private RGB fontRGB;
/**
*
* The label that displays the selected font, or <code>null</code> if
* none.
*
*/
private Label valueControl;
/**
*
* The previewer, or <code>null</code> if none.
*
*/
private DefaultPreviewer previewer;
/**
*
* Internal font previewer implementation.
*
*/
private static class DefaultPreviewer {
private Text text;
private String string;
private Font font;
// private Color color;
/**
* @param s
* @param parent
*/
public DefaultPreviewer(String s, Composite parent) {
string = s;
text = new Text(parent, SWT.READ_ONLY | SWT.BORDER);
text.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
if (font != null)
font.dispose();
}
});
if (string != null)
text.setText(string);
}
/**
* @return the text control
*/
public Control getControl() {
return text;
}
/**
* @param fontData
*/
public void setFont(FontData[] fontData) {
if (font != null && !font.isDisposed())
font.dispose();
font = new Font(text.getDisplay(), fontData);
text.setFont(font);
}
// /**
// * @param fontRGB
// */
// public void setRGB(RGB fontRGB) {
// if (fontRGB != null) {
// if (color != null && !color.isDisposed())
// color.dispose();
// color = new Color(null, fontRGB);
// text.setForeground(color);
// }
// }
/**
* @return the preferred extent
*/
public int getPreferredExtent() {
return 40;
}
}
/**
*
* Creates a new font field editor
*
*/
protected ColorFontFieldEditor() {
// control instantiation
}
/**
*
* Creates a font field editor with an optional preview area.
*
*
*
* @param name
* the name of the preference this field editor works on
*
* @param labelText
* the label text of the field editor
*
* @param previewAreaText
* the text used for the preview window. If it is
*
* <code>null</code> there will be no preview area,
*
* @param parent
* the parent of the field editor's control
*
*/
public ColorFontFieldEditor(
String name,
String labelText,
String previewAreaText,
Composite parent) {
init(name, labelText);
previewText = previewAreaText;
changeButtonText = JFaceResources.getString("openChange"); //$NON-NLS-1$
createControl(parent);
}
/**
*
* Creates a font field editor without a preview.
*
*
*
* @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 ColorFontFieldEditor(String name, String labelText, Composite parent) {
this(name, labelText, null, parent);
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
protected void adjustForNumColumns(int numColumns) {
GridData data = new GridData();
if (valueControl.getLayoutData() != null)
data = (GridData) valueControl.getLayoutData();
data.horizontalSpan = numColumns - getNumberOfControls() + 1;
valueControl.setLayoutData(data);
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
protected void applyFont() {
if (chosenFont != null && previewer != null)
previewer.setFont(chosenFont);
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
protected void doFillIntoGrid(Composite parent, int numColumns) {
getLabelControl(parent);
valueControl = getValueControl(parent);
GridData gd = new GridData(GridData.FILL_HORIZONTAL
| GridData.GRAB_HORIZONTAL);
gd.horizontalSpan = numColumns - getNumberOfControls() + 1;
valueControl.setLayoutData(gd);
if (previewText != null) {
previewer = new DefaultPreviewer(previewText, parent);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.heightHint = previewer.getPreferredExtent();
gd.widthHint = previewer.getPreferredExtent();
previewer.getControl().setLayoutData(gd);
}
changeFontButton = getChangeControl(parent);
gd = new GridData();
int widthHint = convertHorizontalDLUsToPixels(changeFontButton,
IDialogConstants.BUTTON_WIDTH);
gd.widthHint = Math.max(widthHint, changeFontButton.computeSize(
SWT.DEFAULT, SWT.DEFAULT, true).x);
changeFontButton.setLayoutData(gd);
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
protected void doLoad() {
if (changeFontButton == null)
return;
fontRGB = PreferenceConverter.getColor(getPreferenceStore(),
getPreferenceName() + ColorFontFieldEditor_ColorPref);
updateFont(PreferenceConverter.getFontDataArray(getPreferenceStore(),
getPreferenceName()));
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
protected void doLoadDefault() {
if (changeFontButton == null)
return;
updateFont(PreferenceConverter.getDefaultFontDataArray(
getPreferenceStore(), getPreferenceName()));
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
protected void doStore() {
if (chosenFont != null) {
PreferenceConverter.setValue(getPreferenceStore(),
getPreferenceName(), chosenFont);
}
if (fontRGB != null) {
PreferenceConverter.setValue(getPreferenceStore(),
getPreferenceName() + ColorFontFieldEditor_ColorPref, fontRGB);
}
}
/**
*
* Returns the change button for this field editor.
*
*
* @param parent
* @return the change button
*
*/
protected Button getChangeControl(Composite parent) {
if (changeFontButton == null) {
changeFontButton = new Button(parent, SWT.PUSH);
if (changeButtonText != null)
changeFontButton.setText(changeButtonText);
changeFontButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
FontDialog fontDialog = new FontDialog(changeFontButton
.getShell());
if (chosenFont != null)
fontDialog.setFontList(chosenFont);
if (fontRGB != null)
fontDialog.setRGB(fontRGB);
FontData font = fontDialog.open();
if (font != null) {
FontData[] oldFont = chosenFont;
if (oldFont == null)
oldFont = JFaceResources.getDefaultFont()
.getFontData();
setPresentsDefaultValue(false);
FontData[] newData = new FontData[1];
newData[0] = font;
fontRGB = fontDialog.getRGB();
updateFont(newData);
fireValueChanged(VALUE, oldFont[0], font);
}
}
});
changeFontButton.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent event) {
changeFontButton = null;
}
});
changeFontButton.setFont(parent.getFont());
setButtonLayoutData(changeFontButton);
} else
checkParent(changeFontButton, parent);
return changeFontButton;
}
/*
* (non-Javadoc)
*
* Method declared on FieldEditor.
*
*/
public int getNumberOfControls() {
if (previewer == null)
{
return NUM_CONTROLS_WHEN_NO_PREVIEWER;
}
return NUM_CONTROLS_WHEN_PREVIEWER;
}
/**
*
* Returns the preferred preview height.
*
*
*
* @return the height, or <code>-1</code> if no previewer
*
* is installed
*
*/
public int getPreferredPreviewHeight() {
if (previewer == null)
return -1;
return previewer.getPreferredExtent();
}
/**
*
* Returns the preview control for this field editor.
*
*
*
* @return the preview control
*
*/
public Control getPreviewControl() {
if (previewer == null)
return null;
return previewer.getControl();
}
/**
*
* Returns the value control for this field editor. The value control
*
* displays the currently selected font name.
* @param parent
*
*
*
* @return the value control
*
*/
protected Label getValueControl(Composite parent) {
if (valueControl == null) {
valueControl = new Label(parent, SWT.LEFT);
valueControl.setFont(parent.getFont());
valueControl.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent event) {
valueControl = null;
}
});
} else
checkParent(valueControl, parent);
return valueControl;
}
/**
*
* Sets the text of the change button.
*
*
*
* @param text
* the new text
*
*/
public void setChangeButtonText(String text) {
Assert.isNotNull(text);
changeButtonText = text;
if (changeFontButton != null)
changeFontButton.setText(text);
}
/**
*
* Updates the change font button and the previewer to reflect the
*
* newly selected font.
*
*/
private void updateFont(FontData font[]) {
FontData[] bestFont = JFaceResources.getFontRegistry().filterData(
font, valueControl.getDisplay());
// if we have nothing valid do as best we can
if (bestFont == null)
bestFont = getDefaultFontData();
// Now cache this value in the receiver
this.chosenFont = bestFont;
if (valueControl != null) {
if (fontRGB != null) {
ColorRegistry registry = JFaceResources.getColorRegistry();
Color color = registry.get(fontRGB.toString());
if (color == null) {
registry.put(fontRGB.toString(), fontRGB);
color = registry.get(fontRGB.toString());
}
valueControl.setForeground(color);
}
valueControl.setText(StringConverter.asString(chosenFont[0]));
}
if (previewer != null) {
previewer.setFont(bestFont);
}
}
/**
*
* Store the default preference for the field
*
* being edited
*
*/
protected void setToDefault() {
FontData[] defaultFontData = PreferenceConverter
.getDefaultFontDataArray(getPreferenceStore(),
getPreferenceName());
PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(),
defaultFontData);
}
/**
*
* Get the system default font data.
*
*/
private FontData[] getDefaultFontData() {
return valueControl.getDisplay().getSystemFont().getFontData();
}
/*
*
* @see FieldEditor.setEnabled(boolean,Composite).
*
*/
public void setEnabled(boolean enabled, Composite parent) {
super.setEnabled(enabled, parent);
getChangeControl(parent).setEnabled(enabled);
getValueControl(parent).setEnabled(enabled);
}
}
\ No newline at end of file |