private void createFontSettings(Composite composite) { Composite panel = new Composite(composite, SWT.NULL); GridLayout layout = new GridLayout(); layout.marginWidth = 0; layout.marginHeight = 0; layout.numColumns = 4; panel.setLayout(layout); GridData data = new GridData(); data.horizontalSpan = 2; data.grabExcessHorizontalSpace = true; data.horizontalAlignment = SWT.CENTER; panel.setLayoutData(data); fontTypeEditor = new FontFieldEditor(ILogViewerConstants.PREF_EDITOR_FONT_STYLE,LogViewerPlugin.getResourceString("preferences.contenteditor.font.style.text"),panel); //$NON-NLS-1$ fontTypeEditor.setChangeButtonText(LogViewerPlugin.getResourceString("preferences.contenteditor.fontl.style.button.text")); //$NON-NLS-1$ fontTypeEditor.setPreferenceStore(doGetPreferenceStore()); fontTypeEditor.fillIntoGrid(panel, 3); fontTypeEditor.setPage(this); fontTypeEditor.load(); }
/** * 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 FontFieldEditor(String name, String labelText, String previewAreaText, Composite parent) { init(name, labelText); previewText = previewAreaText; changeButtonText = JFaceResources.getString("openChange"); //$NON-NLS-1$ createControl(parent); }
@Override public void setEnabled(boolean enabled, Composite parent) { super.setEnabled(enabled, parent); getChangeControl(parent).setEnabled(enabled); getValueControl(parent).setEnabled(enabled); }
protected void doLoadDefault() { if (changeFontButton == null) { return; } updateFont(PreferenceConverter.getDefaultFontDataArray( getPreferenceStore(), getPreferenceName())); }
/** * Store the default preference for the field * being edited */ protected void setToDefault() { FontData[] defaultFontData = PreferenceConverter .getDefaultFontDataArray(getPreferenceStore(), getPreferenceName()); PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(), defaultFontData); }
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); }
oldFont = JFaceResources.getDefaultFont().getFontData(); setPresentsDefaultValue(false); FontData[] newData = new FontData[1]; newData[0] = font; updateFont(newData); fireValueChanged(VALUE, oldFont[0], font); setButtonLayoutData(changeFontButton); } else { checkParent(changeFontButton, parent);
public void widgetSelected(SelectionEvent event) { FontDialog fontDialog = new FontDialog(changeFontButton .getShell()); if (chosenFont != null) { fontDialog.setFontList(chosenFont); } 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; updateFont(newData); fireValueChanged(VALUE, oldFont[0], font); } } });
setButtonLayoutData(changeFontButton); } else { checkParent(changeFontButton, parent);
@Override public void createFieldEditors() { addField(new FontFieldEditor(JFaceResources.TEXT_FONT, TextEditorMessages.PreferencePage_fontEditor, getFieldEditorParent())); }
@Override 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); }
/** * Returns the value control for this field editor. The value control * displays the currently selected font name. * @param parent The Composite to create the viewer in if required * @return the value control */ protected Label getValueControl(Composite parent) { if (valueControl == null) { valueControl = new Label(parent, SWT.LEFT); valueControl.setFont(parent.getFont()); valueControl.addDisposeListener(event -> valueControl = null); } else { checkParent(valueControl, parent); } return valueControl; }
/** * Updates the change font button and the previewer to reflect the * newly selected font. * @param font The FontData[] to update with. */ 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) { valueControl.setText(StringConverter.asString(chosenFont[0])); } if (previewer != null) { previewer.setFont(bestFont); } }
@Override 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); }
@Override protected void doLoad() { if (changeFontButton == null) { return; } updateFont(PreferenceConverter.getFontDataArray(getPreferenceStore(), getPreferenceName())); }
/** * Store the default preference for the field * being edited */ protected void setToDefault() { FontData[] defaultFontData = PreferenceConverter .getDefaultFontDataArray(getPreferenceStore(), getPreferenceName()); PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(), defaultFontData); }
@Override public void widgetSelected(SelectionEvent event) { FontDialog fontDialog = new FontDialog(changeFontButton .getShell()); if (chosenFont != null) { fontDialog.setFontList(chosenFont); } 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; updateFont(newData); fireValueChanged(VALUE, oldFont[0], font); } } });
changeFontButton.addDisposeListener(event -> changeFontButton = null); changeFontButton.setFont(parent.getFont()); setButtonLayoutData(changeFontButton); } else { checkParent(changeFontButton, parent);
public void createFieldEditors() { addField(new FontFieldEditor(JFaceResources.TEXT_FONT, TextEditorMessages.PreferencePage_fontEditor, getFieldEditorParent())); }
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); }