/** * Handle the create button selection event. * * @param event org.eclipse.swt.events.SelectionEvent */ void createButtonSelected(SelectionEvent event) { /* Compute the appropriate dialog style */ int style = getDefaultStyle(); if (okButton.getEnabled() && okButton.getSelection()) style |= SWT.OK; if (cancelButton.getEnabled() && cancelButton.getSelection()) style |= SWT.CANCEL; if (yesButton.getEnabled() && yesButton.getSelection()) style |= SWT.YES; if (noButton.getEnabled() && noButton.getSelection()) style |= SWT.NO; if (retryButton.getEnabled() && retryButton.getSelection()) style |= SWT.RETRY; if (abortButton.getEnabled() && abortButton.getSelection()) style |= SWT.ABORT; if (ignoreButton.getEnabled() && ignoreButton.getSelection()) style |= SWT.IGNORE; if (iconErrorButton.getEnabled() && iconErrorButton.getSelection()) style |= SWT.ICON_ERROR; if (iconInformationButton.getEnabled() && iconInformationButton.getSelection()) style |= SWT.ICON_INFORMATION; if (iconQuestionButton.getEnabled() && iconQuestionButton.getSelection()) style |= SWT.ICON_QUESTION; if (iconWarningButton.getEnabled() && iconWarningButton.getSelection()) style |= SWT.ICON_WARNING; if (iconWorkingButton.getEnabled() && iconWorkingButton.getSelection()) style |= SWT.ICON_WORKING; if (primaryModalButton.getEnabled() && primaryModalButton.getSelection()) style |= SWT.PRIMARY_MODAL; if (applicationModalButton.getEnabled() && applicationModalButton.getSelection()) style |= SWT.APPLICATION_MODAL; if (systemModalButton.getEnabled() && systemModalButton.getSelection()) style |= SWT.SYSTEM_MODAL; if (saveButton.getEnabled() && saveButton.getSelection()) style |= SWT.SAVE; if (openButton.getEnabled() && openButton.getSelection()) style |= SWT.OPEN; if (multiButton.getEnabled() && multiButton.getSelection()) style |= SWT.MULTI; /* Open the appropriate dialog type */ String name = dialogCombo.getText(); if (name.equals(ControlExample.getResourceString("ColorDialog"))) { ColorDialog dialog = new ColorDialog(shell, style); dialog.setRGB(new RGB(100, 100, 100)); dialog.setText(ControlExample.getResourceString("Title")); RGB result = dialog.open(); textWidget.append(ControlExample.getResourceString("ColorDialog") + Text.DELIMITER); textWidget.append( ControlExample.getResourceString("Result", new String[] {"" + result}) + Text.DELIMITER); textWidget.append("getRGB() = " + dialog.getRGB() + Text.DELIMITER + Text.DELIMITER); return; } if (name.equals(ControlExample.getResourceString("DirectoryDialog"))) { DirectoryDialog dialog = new DirectoryDialog(shell, style); dialog.setMessage(ControlExample.getResourceString("Example_string")); dialog.setText(ControlExample.getResourceString("Title")); String result = dialog.open(); textWidget.append(ControlExample.getResourceString("DirectoryDialog") + Text.DELIMITER); textWidget.append( ControlExample.getResourceString("Result", new String[] {"" + result}) + Text.DELIMITER + Text.DELIMITER); return; } if (name.equals(ControlExample.getResourceString("FileDialog"))) { FileDialog dialog = new FileDialog(shell, style); dialog.setFileName(ControlExample.getResourceString("readme_txt")); dialog.setFilterNames(FilterNames); dialog.setFilterExtensions(FilterExtensions); dialog.setText(ControlExample.getResourceString("Title")); String result = dialog.open(); textWidget.append(ControlExample.getResourceString("FileDialog") + Text.DELIMITER); textWidget.append( ControlExample.getResourceString("Result", new String[] {"" + result}) + Text.DELIMITER); textWidget.append("getFileNames() =" + Text.DELIMITER); if ((dialog.getStyle() & SWT.MULTI) != 0) { String[] files = dialog.getFileNames(); for (int i = 0; i < files.length; i++) { textWidget.append("\t" + files[i] + Text.DELIMITER); } } textWidget.append( "getFilterIndex() = " + dialog.getFilterIndex() + Text.DELIMITER + Text.DELIMITER); return; } if (name.equals(ControlExample.getResourceString("FontDialog"))) { FontDialog dialog = new FontDialog(shell, style); dialog.setText(ControlExample.getResourceString("Title")); FontData result = dialog.open(); textWidget.append(ControlExample.getResourceString("FontDialog") + Text.DELIMITER); textWidget.append( ControlExample.getResourceString("Result", new String[] {"" + result}) + Text.DELIMITER); textWidget.append("getFontList() =" + Text.DELIMITER); FontData[] fonts = dialog.getFontList(); if (fonts != null) { for (int i = 0; i < fonts.length; i++) { textWidget.append("\t" + fonts[i] + Text.DELIMITER); } } textWidget.append("getRGB() = " + dialog.getRGB() + Text.DELIMITER + Text.DELIMITER); return; } if (name.equals(ControlExample.getResourceString("PrintDialog"))) { PrintDialog dialog = new PrintDialog(shell, style); dialog.setText(ControlExample.getResourceString("Title")); PrinterData result = dialog.open(); textWidget.append(ControlExample.getResourceString("PrintDialog") + Text.DELIMITER); textWidget.append( ControlExample.getResourceString("Result", new String[] {"" + result}) + Text.DELIMITER); textWidget.append("getScope() = " + dialog.getScope() + Text.DELIMITER); textWidget.append("getStartPage() = " + dialog.getStartPage() + Text.DELIMITER); textWidget.append("getEndPage() = " + dialog.getEndPage() + Text.DELIMITER); textWidget.append( "getPrintToFile() = " + dialog.getPrintToFile() + Text.DELIMITER + Text.DELIMITER); return; } if (name.equals(ControlExample.getResourceString("MessageBox"))) { MessageBox dialog = new MessageBox(shell, style); dialog.setMessage(ControlExample.getResourceString("Example_string")); dialog.setText(ControlExample.getResourceString("Title")); int result = dialog.open(); textWidget.append(ControlExample.getResourceString("MessageBox") + Text.DELIMITER); /* * The resulting integer depends on the original * dialog style. Decode the result and display it. */ switch (result) { case SWT.OK: textWidget.append(ControlExample.getResourceString("Result", new String[] {"SWT.OK"})); break; case SWT.YES: textWidget.append(ControlExample.getResourceString("Result", new String[] {"SWT.YES"})); break; case SWT.NO: textWidget.append(ControlExample.getResourceString("Result", new String[] {"SWT.NO"})); break; case SWT.CANCEL: textWidget.append( ControlExample.getResourceString("Result", new String[] {"SWT.CANCEL"})); break; case SWT.ABORT: textWidget.append(ControlExample.getResourceString("Result", new String[] {"SWT.ABORT"})); break; case SWT.RETRY: textWidget.append(ControlExample.getResourceString("Result", new String[] {"SWT.RETRY"})); break; case SWT.IGNORE: textWidget.append( ControlExample.getResourceString("Result", new String[] {"SWT.IGNORE"})); break; default: textWidget.append(ControlExample.getResourceString("Result", new String[] {"" + result})); break; } textWidget.append(Text.DELIMITER + Text.DELIMITER); } }
@Override public void widgetSelected(SelectionEvent e) { Object source = e.getSource(); boolean updateQuickly = true; // Tabs if (source == mImageRadio) { chooseForegroundTab((Button) source, mImageForm); } else if (source == mClipartRadio) { chooseForegroundTab((Button) source, mClipartForm); } else if (source == mTextRadio) { updateFontLabel(mFontButton.getFont()); chooseForegroundTab((Button) source, mTextForm); mText.setFocus(); } // Choose image file if (source == mPickImageButton) { FileDialog dialog = new FileDialog(mPickImageButton.getShell(), SWT.OPEN); String file = dialog.open(); if (file != null) { mImagePathText.setText(file); } } // Enforce Radio Groups if (source == mCropRadio) { mCropRadio.setSelection(true); // Ensure that you can't toggle it off mCenterRadio.setSelection(false); } else if (source == mCenterRadio) { mCenterRadio.setSelection(true); mCropRadio.setSelection(false); } if (source == mSquareRadio) { mSquareRadio.setSelection(true); mCircleButton.setSelection(false); } else if (source == mCircleButton) { mCircleButton.setSelection(true); mSquareRadio.setSelection(false); } if (SUPPORT_LAUNCHER_ICON_TYPES) { if (source == mSimpleRadio) { mSimpleRadio.setSelection(true); mGlossyRadio.setSelection(false); mFancyRadio.setSelection(false); } else if (source == mFancyRadio) { mFancyRadio.setSelection(true); mSimpleRadio.setSelection(false); mGlossyRadio.setSelection(false); } else if (source == mGlossyRadio) { mGlossyRadio.setSelection(true); mSimpleRadio.setSelection(false); mFancyRadio.setSelection(false); } } if (source == mHoloDarkRadio) { mHoloDarkRadio.setSelection(true); mHoloLightRadio.setSelection(false); } else if (source == mHoloLightRadio) { mHoloLightRadio.setSelection(true); mHoloDarkRadio.setSelection(false); } if (source == mChooseClipart) { MessageDialog dialog = new MessageDialog( mChooseClipart.getShell(), "Choose Clip Art", null, "Choose Clip Art Image:", MessageDialog.NONE, new String[] {"Close"}, 0) { @Override protected Control createCustomArea(Composite parent) { // Outer form which just establishes a width for the inner form which // wraps in a RowLayout Composite outer = new Composite(parent, SWT.NONE); GridLayout gridLayout = new GridLayout(); outer.setLayout(gridLayout); Composite chooserForm = new Composite(outer, SWT.NONE); GridData gd = new GridData(); gd.grabExcessVerticalSpace = true; gd.widthHint = 450; chooserForm.setLayoutData(gd); RowLayout clipartFormLayout = new RowLayout(SWT.HORIZONTAL); clipartFormLayout.center = true; clipartFormLayout.wrap = true; chooserForm.setLayout(clipartFormLayout); MouseAdapter clickListener = new MouseAdapter() { @SuppressWarnings("unused") @Override public void mouseDown(MouseEvent event) { // Clicked on some of the sample art if (event.widget instanceof ImageControl) { ImageControl image = (ImageControl) event.widget; mSelectedClipart = (String) image.getData(); close(); for (Control c : mClipartPreviewPanel.getChildren()) { c.dispose(); } if (mClipartPreviewPanel.getChildren().length == 0) { try { BufferedImage icon = GraphicGenerator.getClipartIcon(mSelectedClipart); if (icon != null) { Display display = mClipartForm.getDisplay(); Image swtImage = SwtUtils.convertToSwt(display, icon, true, -1); new ImageControl(mClipartPreviewPanel, SWT.NONE, swtImage); } } catch (IOException e1) { AdtPlugin.log(e1, null); } mClipartPreviewPanel.pack(); mClipartPreviewPanel.layout(); } updatePreview(); } } }; Display display = chooserForm.getDisplay(); Color hoverColor = display.getSystemColor(SWT.COLOR_RED); Iterator<String> clipartImages = GraphicGenerator.getClipartNames(); while (clipartImages.hasNext()) { String name = clipartImages.next(); try { BufferedImage icon = GraphicGenerator.getClipartIcon(name); if (icon != null) { Image swtImage = SwtUtils.convertToSwt(display, icon, true, -1); ImageControl img = new ImageControl(chooserForm, SWT.NONE, swtImage); img.setData(name); img.setHoverColor(hoverColor); img.addMouseListener(clickListener); } } catch (IOException e1) { AdtPlugin.log(e1, null); } } outer.pack(); outer.layout(); return outer; } }; dialog.open(); } if (source == mBgButton) { ColorDialog dlg = new ColorDialog(mBgButton.getShell()); dlg.setRGB(mBgColor); dlg.setText("Choose a new Background Color"); RGB rgb = dlg.open(); if (rgb != null) { // Dispose the old color, create the // new one, and set into the label updateColor(mBgButton.getDisplay(), rgb, true /*background*/); } } else if (source == mFgButton) { ColorDialog dlg = new ColorDialog(mFgButton.getShell()); dlg.setRGB(mFgColor); dlg.setText("Choose a new Foreground Color"); RGB rgb = dlg.open(); if (rgb != null) { // Dispose the old color, create the // new one, and set into the label updateColor(mFgButton.getDisplay(), rgb, false /*background*/); } } if (source == mFontButton) { FontDialog dialog = new FontDialog(mFontButton.getShell()); FontData[] fontList; if (mFontButton.getData() == null) { fontList = mFontButton.getDisplay().getFontList("Helvetica", true /*scalable*/); } else { fontList = mFontButton.getFont().getFontData(); } dialog.setFontList(fontList); FontData data = dialog.open(); if (data != null) { Font font = new Font(mFontButton.getDisplay(), dialog.getFontList()); mFontButton.setFont(font); updateFontLabel(font); mFontButton.getParent().pack(); // Mark the font on the button as custom (since the renderer needs to // distinguish between this font and the default font it starts out with) mFontButton.setData(Boolean.TRUE); } } if (source == mPaddingSlider) { mPercentLabel.setText(Integer.toString(getPadding()) + '%'); // When dragging the slider, only do periodic updates updateQuickly = false; } requestUpdatePreview(updateQuickly); }