1 11 package org.eclipse.ui.internal.browser; 12 13 import org.eclipse.jface.dialogs.Dialog; 14 import org.eclipse.jface.dialogs.IDialogConstants; 15 import org.eclipse.jface.resource.JFaceResources; 16 import org.eclipse.swt.SWT; 17 import org.eclipse.swt.graphics.FontMetrics; 18 import org.eclipse.swt.graphics.GC; 19 import org.eclipse.swt.layout.GridData; 20 import org.eclipse.swt.widgets.Button; 21 import org.eclipse.swt.widgets.Composite; 22 import org.eclipse.swt.widgets.Control; 23 import org.eclipse.swt.widgets.Label; 24 27 public class SWTUtil { 28 private static FontMetrics fontMetrics; 29 30 protected static void initializeDialogUnits(Control testControl) { 31 GC gc = new GC(testControl); 33 gc.setFont(JFaceResources.getDialogFont()); 34 fontMetrics = gc.getFontMetrics(); 35 gc.dispose(); 36 } 37 38 41 protected static int getButtonWidthHint(Button button) { 42 int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH); 43 return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x); 44 } 45 46 53 public static Button createButton(Composite comp, String label) { 54 Button b = new Button(comp, SWT.PUSH); 55 b.setText(label); 56 if (fontMetrics == null) 57 initializeDialogUnits(comp); 58 GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING); 59 data.widthHint = getButtonWidthHint(b); 60 b.setLayoutData(data); 61 return b; 62 } 63 64 71 public static Label createLabel(Composite comp, String text) { 72 Label label = new Label(comp, SWT.NONE); 73 label.setText(text); 74 label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING)); 75 return label; 76 } 77 } | Popular Tags |