📄 dialogtab.java
字号:
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.examples.controlexample;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.printing.*;
import org.eclipse.swt.events.*;
class DialogTab extends Tab {
/* Example widgets and groups that contain them */
Group dialogStyleGroup, resultGroup;
Text textWidget;
/* Style widgets added to the "Style" group */
Combo dialogCombo;
Button createButton;
Button okButton, cancelButton;
Button yesButton, noButton;
Button retryButton;
Button abortButton, ignoreButton;
Button iconErrorButton, iconInformationButton, iconQuestionButton;
Button iconWarningButton, iconWorkingButton;
Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton;
Button saveButton, openButton, multiButton;
static String [] FilterExtensions = {"*.txt", "*.bat", "*.doc", "*"};
static String [] FilterNames = {ControlExample.getResourceString("FilterName_0"),
ControlExample.getResourceString("FilterName_1"),
ControlExample.getResourceString("FilterName_2"),
ControlExample.getResourceString("FilterName_3")};
/**
* Creates the Tab within a given instance of ControlExample.
*/
DialogTab(ControlExample instance) {
super(instance);
}
/**
* Handle a button style selection event.
*
* @param event the selection event
*/
void buttonStyleSelected(SelectionEvent event) {
/*
* Only certain combinations of button styles are
* supported for various dialogs. Make sure the
* control widget reflects only valid combinations.
*/
boolean ok = okButton.getSelection ();
boolean cancel = cancelButton.getSelection ();
boolean yes = yesButton.getSelection ();
boolean no = noButton.getSelection ();
boolean abort = abortButton.getSelection ();
boolean retry = retryButton.getSelection ();
boolean ignore = ignoreButton.getSelection ();
okButton.setEnabled (!(yes || no || retry || abort || ignore));
cancelButton.setEnabled (!(abort || ignore || (yes != no)));
yesButton.setEnabled (!(ok || retry || abort || ignore || (cancel && !yes && !no)));
noButton.setEnabled (!(ok || retry || abort || ignore || (cancel && !yes && !no)));
retryButton.setEnabled (!(ok || yes || no));
abortButton.setEnabled (!(ok || cancel || yes || no));
ignoreButton.setEnabled (!(ok || cancel || yes || no));
createButton.setEnabled (
!(ok || cancel || yes || no || retry || abort || ignore) ||
ok ||
(ok && cancel) ||
(yes && no) ||
(yes && no && cancel) ||
(retry && cancel) ||
(abort && retry && ignore));
}
/**
* 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 ();
Shell shell = tabFolderPage.getShell ();
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 + 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 + 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 + 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 + 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);
}
}
/**
* Creates the "Control" group.
*/
void createControlGroup () {
/*
* Create the "Control" group. This is the group on the
* right half of each example tab. It consists of the
* style group, the display group and the size group.
*/
controlGroup = new Group (tabFolderPage, SWT.NONE);
GridLayout gridLayout= new GridLayout ();
controlGroup.setLayout(gridLayout);
gridLayout.numColumns = 2;
gridLayout.makeColumnsEqualWidth = true;
controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
controlGroup.setText (ControlExample.getResourceString("Parameters"));
/*
* Create a group to hold the dialog style combo box and
* create dialog button.
*/
dialogStyleGroup = new Group (controlGroup, SWT.NONE);
dialogStyleGroup.setLayout (new GridLayout ());
GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER);
gridData.horizontalSpan = 2;
dialogStyleGroup.setLayoutData (gridData);
dialogStyleGroup.setText (ControlExample.getResourceString("Dialog_Type"));
}
/**
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -