/*
Copyright (c) 2003-2009 ITerative Consulting Pty Ltd. All Rights Reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
o Redistributions of source code must retain the above copyright notice, this list of conditions and
the following disclaimer.
o Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the distribution.
o This jcTOOL Helper Class software, whether in binary or source form may not be used within,
or to derive, any other product without the specific prior written permission of the copyright holder
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package Express.windows;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.KeyboardFocusManager;
import java.awt.event.ComponentListener;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.ToolTipManager;
import javax.swing.UIManager;
import DisplayProject.CloseHideAdaptor;
import DisplayProject.Constants;
import DisplayProject.CursorMgr;
import DisplayProject.GridField;
import DisplayProject.LayoutManagerHelper;
import DisplayProject.UIutils;
import DisplayProject.UsageMap;
import DisplayProject.WindowFormLayout;
import DisplayProject.WindowManager;
import DisplayProject.actions.DefaultButton;
import DisplayProject.actions.Focus;
import DisplayProject.actions.HeightPolicy;
import DisplayProject.actions.UserWindow;
import DisplayProject.actions.WidgetState;
import DisplayProject.actions.WidthPolicy;
import DisplayProject.binding.BindingManager;
import DisplayProject.binding.beans.ExtendedPropertyChangeSupport;
import DisplayProject.binding.beans.Observable;
import DisplayProject.controls.PictureGraphic;
import DisplayProject.controls.TextGraphic;
import DisplayProject.events.ClientEventManager;
import DisplayProject.factory.CompoundFieldFactory;
import DisplayProject.factory.GraphicFactory;
import DisplayProject.factory.PushButtonFactory;
import DisplayProject.factory.ToggleFieldFactory;
import Framework.Application;
import Framework.BooleanData;
import Framework.ErrorMgr;
import Framework.EventHandle;
import Framework.EventManager;
import Framework.EventRegistration;
import Framework.File;
import Framework.ForteKeyboardFocusManager;
import Framework.ImageData;
import Framework.RuntimeProperties;
import Framework.TextData;
import Framework.UsageException;
import com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel;
/**
* The ConfirmationWindow class defines a message dialog with a set of predefined buttons that allow the end user to confirm an operation, accept or deny an optional behavior in that operation, or cancel the operation.
* <p>
* @author ITerative Consulting
* @since 26-Feb-2008
*/
@RuntimeProperties(isDistributed=false, isAnchored=false, isShared=false, isTransactional=false)
@SuppressWarnings("serial")
public class ConfirmationWindow
extends JFrame
implements Serializable, Observable
{
// ----------
// Attributes
// ----------
protected File DefaultHelpFile;
protected BindingManager bindingManager = null;
public PropertyChangeSupport qq_Listeners = new ExtendedPropertyChangeSupport(this, true);
private boolean stopMessage;
// ------------
// Constructors
// ------------
public ConfirmationWindow() {
// Explicitly call the superclass constructor to prevent the implicit call
super();
this.initialize();
this.stopMessage = false;
}
// ----------------------
// Accessors and Mutators
// ----------------------
public File getDefaultHelpFile() {
return DefaultHelpFile;
}
public void setDefaultHelpFile(File defaultHelpFile) {
DefaultHelpFile = defaultHelpFile;
//this.getForm().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "VK_HELP");
//this.getForm().getActionMap().put("VK_HELP", new HelpAction(defaultHelpFile));
UserWindow.createHelp(this, defaultHelpFile);
}
public void setHelpURL(String urlString) {
try {
URL url = new URL(urlString);
UserWindow.createHelp(this, url);
} catch (MalformedURLException e) {
UsageException err = new UsageException("Cannot create help URL", e);
ErrorMgr.addError(err);
throw err;
}
}
protected BindingManager getBindingManager() {
if (this.bindingManager == null) {
this.bindingManager = new BindingManager(this);
}
return bindingManager;
}
public void setStopMessage(boolean stopMessage) {
boolean oldValue = this.stopMessage;
this.stopMessage = stopMessage;
this.qq_Listeners.firePropertyChange("stopMessage", oldValue, this.stopMessage);
}
public boolean getStopMessage() {
return this.stopMessage;
}
// -------
// Methods
// -------
public void addPropertyChangeListener(String property, PropertyChangeListener listener) {
qq_Listeners.addPropertyChangeListener(property, listener);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
qq_Listeners.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(String property, PropertyChangeListener listener) {
qq_Listeners.removePropertyChangeListener(property, listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
qq_Listeners.removePropertyChangeListener(listener);
}
/**
* display<p>
* <p>
* @param messageText Type: TextData
* @param windowName Type: TextData
* @param buttonSet Type: int
* @param defaultButton Type: int
* @param wrapWidth Type: int (Input) (default in Forte: 50)
* @param confirmAgain Type: BooleanData
* @param appBroker Type: ApplicationBroker
* @return int
*/
public int display(TextData messageText, TextData windowName, int buttonSet, int defaultButton, int wrapWidth, BooleanData confirmAgain, ApplicationBroker appBroker) {
int retButton = 0;
if (Application.getMsgCatalog().isPresent()) {
UIutils.reloadLabelText(this, Application.getMsgCatalog());
}
TextData.bind(this, "title").setValue( appBroker.getLocalString(ApplicationBroker.MS_MESSAGE_SET, ApplicationBroker.MN_TITLE_CONFIRM_WIN) );
TextData.bind(this, "title").replaceParameters(TextData.bind(this, "title"), windowName);
TextData.bind(this.getqq_Message(), "text").setValue( messageText.wrapText(50, 4) );
switch (buttonSet) {
case JOptionPane.OK_CANCEL_OPTION: {
WidgetState.set(this.getqq_YesPB(), Constants.FS_INVISIBLE);
WidgetState.set(this.getqq_NoPB(), Constants.FS_INVISIBLE);
break;
}
case JOptionPane.YES_NO_OPTION: {
WidgetState.set(this.getqq_OKPB(), Constants.FS_INVISIBLE);
WidgetState.set(this.getqq_CancelPB(), Constants.FS_INVISIBLE);
break;
}
case JOptionPane.YES_NO_CANCEL_OPTION: {
WidgetState.set(this.getqq_OKPB(), Constants.FS_INVISIBLE);
break;
}
}
UserWindow.open(this, true);
switch (defaultButton) {
// AGD 26/2/2008 Commented out in because duplicate
// It had been commented out in the last release
// case JOptionPane.OK_OPTION: {
// DefaultButton.set(this.getqq_OKPB(), true);
// Focus.set(this.getqq_OKPB());
//
// break;
// }
case JOptionPane.YES_OPTION: {
DefaultButton.set(this.getqq_YesPB(), true);
Focus.set(this.getqq_YesPB());
break;
}
case JOptionPane.NO_OPTION: {
DefaultButton.set(this.getqq_NoPB(), true);
Focus.set(this.getqq_NoPB());
break;
}
case JOptionPane.CANCEL_OPTION: {
DefaultButton.set(this.getqq_CancelPB(), true);
Focus.set(this.getqq_CancelPB());
break;
}
}
// ----------
// Event Loop
// ----------
EventManager.startEventLoop();
try {
EventRegistration TaskHandle_Shutdown_TaskcurrentTask = ClientEventManager.register( Thread.currentThread(), "Shutdown" );
EventRegistration PushButton_Click_getqq_YesPB = ClientEventManager.register( this.getqq_YesPB(), "Click" );
EventRegistration PushButton_Click_getqq_NoPB = ClientEventManager.register( this.getqq_NoPB(), "Click" );
EventRegistration PushButton_Click_getqq_OKPB = ClientEventManager.register( this.getqq_OKPB(), "Click" );
EventRegistration PushButton_Click_getqq_CancelPB = ClientEventManager.register( this.getqq_CancelPB(), "Click" );
while (true) {
UIutils.processGUIActions();
EventHandle qq_currentEvent = EventManager.waitForEvent();
if (qq_currentEvent == null)
break;
// -------------
// task.shutdown
// -------------
if (qq_currentEvent.isEvent(TaskHandle_Shutdown_TaskcurrentTask)) {
try {
CursorMgr.startEvent();
// ================ Begin Forte Event Handler Translation ================
break;
// ================ End Forte Event Handler Translation ================
}
finally {
CursorMgr.endEvent();
}
}
// -------------
// <YesPB>.click
// -------------
else if (qq_currentEvent.isEvent(PushButton_Click_getqq_YesPB)) {
try {
CursorMgr.startEvent();
// ================ Begin Forte Event Handler Translation ================
retButton = JOptionPane.YES_OPTION;
break;
// ================ End Forte Event Handler Translation ================
}
finally {
CursorMgr.endEvent();
}
}
// ------------
// <NoPB>.click
// ------------
else if (qq_currentEvent.isEvent(PushButton_Click_getqq_NoPB)) {
try {
CursorMgr.startEvent();
// ================ Begin Forte Event Handler Translation ================
retButton = JOptionPane.NO_OPTION;
break;
// ================ End Forte Event Handler Translation ================
}
finally {
CursorMgr.endEvent();
}
}
// ------------
// <OKPB>.click
// ------------
else if (qq_currentEvent.isEvent(PushButton_Click_getqq_OKPB)) {
try {
CursorMgr.startEvent();
// ================ Begin Forte Event Handler Translation ================
retButton = JOptionPane.OK_OPTION;
break;
// ================ End Forte Event Handler Translation ================
}
finally {
CursorMgr.endEvent();
}
}
// ----------------
// <CancelPB>.click
// ----------------
else if (qq_currentEvent.isEvent(PushButton_Click_getqq_CancelPB)) {
try {
CursorMgr.startEvent();
// ================ Begin Forte Event Handler Translation ================
retButton = JOptionPane.CANCEL_OPTION;
break;
// ================ End Forte Event Handler Translation ================
}
finally {
CursorMgr.endEvent();
}
}
}
EventManager.deregister( TaskHandle_Shutdown_TaskcurrentTask );
EventManager.deregister( PushButton_Click_getqq_YesPB );
EventManager.deregister( PushButton_Click_getqq_NoPB );
EventManager.deregister( PushButton_Click_getqq_OKPB );
EventManager.deregister( PushButton_Click_getqq_CancelPB );
}
//catch (Exception qq_error) {
//Logger.getLogger("task.part.Event").error("Event loop terminated by unhandled exception: " + qq_error.getMessage(), qq_error );
//throw qq_error;
//}
finally {
EventManager.endEventLoop();
UserWindow.close(this);
}
if (confirmAgain != null) {
if (this.getStopMessage() == true) {
confirmAgain.setValue(false);
}
}
return retButton;
}
// ------------------
// Window Definitions
// ------------------
// <editor-fold defaultstate="collapsed" desc="Window Definitions">
private int qq_defaultSet = 1;
private int qq_msgNumber = 0;
private int qq_msgSet = 0;
protected int initialX;
protected int initialY;
protected int qq_SystemClosePolicy = Constants.SC_ENABLEDSHUTDOWN;
protected int qq_initialPositionPolicy = Constants.PP_SYSTEMDEFAULT;
public GridField qq_GridField1;
public GridField qq_GridField2;
public GridField qq_GridField;
public JButton qq_CancelPB;
public JButton qq_NoPB;
public JButton qq_OKPB;
public JButton qq_YesPB;
public JCheckBox qq_StopMessage;
public JPanel Form;
public PictureGraphic qq_PictureGraphic;
public TextGraphic qq_Message;
/**
* qq_PictureGraphic: transformed from: qqds_PictureGraphic
* TagId=1
*/
public PictureGraphic getqq_PictureGraphic() {
if (qq_PictureGraphic == null) {
qq_PictureGraphic = GraphicFactory.newPictureGraphic("", Constants.CG_CENTER);
qq_PictureGraphic.setImageValue(new ImageData(new ImageIcon(getClass().getClassLoader().getResource("Express/windows/ConfirmationWindow.qq_PictureGraphic.png"))));
qq_PictureGraphic.setName("");
qq_PictureGraphic.setWidthPolicy(Constants.SP_NATURAL);
qq_PictureGraphic.setHeightPolicy(Constants.SP_NATURAL);
qq_PictureGraphic.setImageSizePolicy(Constants.IS_FIELD);
qq_PictureGraphic.setOpaque( true );
qq_PictureGraphic.setSize(new Dimension(33, 33));
qq_PictureGraphic.setMinimumSize(new Dimension(33, 33));
qq_PictureGraphic.setPreferredSize(new Dimension(33, 33));
}
return qq_PictureGraphic;
}
/**
* qq_Message: transformed from: qqds_TextGraphic
* TagId=65532
*/
public TextGraphic getqq_Message() {
if (qq_Message == null) {
qq_Message = GraphicFactory.newTextGraphic("Message text goes here.\n", "Message");
// OPTIONAL UIutils.reloadLabelText(qq_Message, mcat);
WidthPolicy.set(qq_Message, Constants.SP_NATURAL);
HeightPolicy.set(qq_Message, Constants.SP_NATURAL);
qq_Message.setPreferredSize(UIutils.labelWidth(qq_Message));
}
return qq_Message;
}
/**
* qq_GridField1: transformed from: qqds_GridField
* TagId=65534
* In forte this was a 2x1 grid field.
* There are no cell margins set
* The width policy is set to Natural, and the height policy is set to Natural.
*/
public GridField getqq_GridField1() {
if (qq_GridField1 == null) {
qq_GridField1 = CompoundFieldFactory.newGridField("");
qq_GridField1.setCellGravity(Constants.CG_CENTER);
qq_GridField1.setCollapsed(true);
qq_GridField1.setInsertPolicy(Constants.IP_EXPAND);
qq_GridField1.setHeightPolicy(Constants.SP_NATURAL);
qq_GridField1.setWidthPolicy(Constants.SP_NATURAL);
// OPTIONAL UIutils.reloadLabelText(qq_GridField1, mcat);
qq_GridField1.setBackground(null);
// OPTIONAL qq_GridField1.setSize(new Dimension(259, 71));
// OPTIONAL qq_GridField1.setMinimumSize(new Dimension(259, 71));
// OPTIONAL qq_GridField1.setPreferredSize(new Dimension(259, 71));
GridBagConstraints qq_gbc = new GridBagConstraints();
qq_gbc.gridx = 0; // Column 1
qq_gbc.gridy = 0; // Row 1
qq_gbc.weightx = 0;
qq_gbc.weighty = 0;
qq_gbc.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER
qq_gbc.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc.insets = new Insets(19, 19, 19, 19); // Top, Left, Bottom, Right Margin
qq_GridField1.add( getqq_PictureGraphic(), qq_gbc );
GridBagConstraints qq_gbc1 = new GridBagConstraints();
qq_gbc1.gridx = 1; // Column 2
qq_gbc1.gridy = 0; // Row 1
qq_gbc1.weightx = 0;
qq_gbc1.weighty = 0;
qq_gbc1.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER
qq_gbc1.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc1.insets = new Insets(0, 19, 0, 19); // Top, Left, Bottom, Right Margin
qq_GridField1.add( getqq_Message(), qq_gbc1 );
}
return qq_GridField1;
}
/**
* qq_YesPB: transformed from: qqds_PushButton
* TagId=65530
*/
public JButton getqq_YesPB() {
if (qq_YesPB == null) {
qq_YesPB = PushButtonFactory.newInstance("YesPB", "Yes");
UIutils.setMsgSet(qq_YesPB, 60100);
UIutils.setMsgNumber(qq_YesPB, 158);
qq_YesPB.setVerifyInputWhenFocusTarget(true);
// OPTIONAL UIutils.reloadLabelText(qq_YesPB, mcat);
WidthPolicy.set(qq_YesPB, Constants.SP_TO_PARTNER);
HeightPolicy.set(qq_YesPB, Constants.SP_TO_PARTNER);
LayoutManagerHelper.setHeightPartner(qq_YesPB, getqq_NoPB());
LayoutManagerHelper.setWidthPartner(qq_YesPB, getqq_NoPB());
// OPTIONAL qq_YesPB.setSize(new Dimension(64, 31));
qq_YesPB.setMinimumSize(new Dimension(64, 31));
qq_YesPB.setPreferredSize(new Dimension(64, 31));
}
return qq_YesPB;
}
/**
* qq_NoPB: transformed from: qqds_PushButton
* TagId=65529
*/
public JButton getqq_NoPB() {
if (qq_NoPB == null) {
qq_NoPB = PushButtonFactory.newInstance("NoPB", "No");
UIutils.setMsgSet(qq_NoPB, 60100);
UIutils.setMsgNumber(qq_NoPB, 155);
qq_NoPB.setVerifyInputWhenFocusTarget(true);
// OPTIONAL UIutils.reloadLabelText(qq_NoPB, mcat);
WidthPolicy.set(qq_NoPB, Constants.SP_TO_PARTNER);
HeightPolicy.set(qq_NoPB, Constants.SP_TO_PARTNER);
LayoutManagerHelper.setHeightPartner(qq_NoPB, getqq_OKPB());
LayoutManagerHelper.setWidthPartner(qq_NoPB, getqq_OKPB());
// OPTIONAL qq_NoPB.setSize(new Dimension(64, 31));
qq_NoPB.setMinimumSize(new Dimension(64, 31));
qq_NoPB.setPreferredSize(new Dimension(64, 31));
}
return qq_NoPB;
}
/**
* qq_OKPB: transformed from: qqds_PushButton
* TagId=65528
*/
public JButton getqq_OKPB() {
if (qq_OKPB == null) {
qq_OKPB = PushButtonFactory.newInstance("OKPB", "OK");
UIutils.setMsgSet(qq_OKPB, 60100);
UIutils.setMsgNumber(qq_OKPB, 156);
qq_OKPB.setVerifyInputWhenFocusTarget(true);
// OPTIONAL UIutils.reloadLabelText(qq_OKPB, mcat);
WidthPolicy.set(qq_OKPB, Constants.SP_TO_PARTNER);
HeightPolicy.set(qq_OKPB, Constants.SP_TO_PARTNER);
LayoutManagerHelper.setHeightPartner(qq_OKPB, getqq_CancelPB());
LayoutManagerHelper.setWidthPartner(qq_OKPB, getqq_CancelPB());
// OPTIONAL qq_OKPB.setSize(new Dimension(64, 31));
qq_OKPB.setMinimumSize(new Dimension(64, 31));
qq_OKPB.setPreferredSize(new Dimension(64, 31));
}
return qq_OKPB;
}
/**
* qq_CancelPB: transformed from: qqds_PushButton
* TagId=65527
*/
public JButton getqq_CancelPB() {
if (qq_CancelPB == null) {
qq_CancelPB = PushButtonFactory.newInstance("CancelPB", "Cancel");
UIutils.setMsgSet(qq_CancelPB, 60100);
UIutils.setMsgNumber(qq_CancelPB, 151);
qq_CancelPB.setVerifyInputWhenFocusTarget(true);
// OPTIONAL UIutils.reloadLabelText(qq_CancelPB, mcat);
WidthPolicy.set(qq_CancelPB, Constants.SP_TO_PARTNER);
HeightPolicy.set(qq_CancelPB, Constants.SP_TO_PARTNER);
LayoutManagerHelper.setHeightPartner(qq_CancelPB, getqq_YesPB());
LayoutManagerHelper.setWidthPartner(qq_CancelPB, getqq_YesPB());
// OPTIONAL qq_CancelPB.setSize(new Dimension(64, 31));
qq_CancelPB.setMinimumSize(new Dimension(64, 31));
qq_CancelPB.setPreferredSize(new Dimension(64, 31));
}
return qq_CancelPB;
}
/**
* qq_GridField2: transformed from: qqds_GridField
* TagId=65531
* In forte this was a 4x1 grid field.
* The cell margins are all 100 mils
* The width policy is set to Natural, and the height policy is set to Natural.
*/
public GridField getqq_GridField2() {
if (qq_GridField2 == null) {
qq_GridField2 = CompoundFieldFactory.newGridField("");
qq_GridField2.setCellTopMargin(50);
qq_GridField2.setCellBottomMargin(50);
qq_GridField2.setCellLeftMargin(50);
qq_GridField2.setCellRightMargin(50);
qq_GridField2.setCellGravity(Constants.CG_CENTER);
qq_GridField2.setIgnoreInvisibleChildren(true);
qq_GridField2.setCollapsed(true);
qq_GridField2.setInsertPolicy(Constants.IP_EXPAND);
qq_GridField2.setHeightPolicy(Constants.SP_NATURAL);
qq_GridField2.setWidthPolicy(Constants.SP_NATURAL);
// OPTIONAL UIutils.reloadLabelText(qq_GridField2, mcat);
qq_GridField2.setBackground(null);
// OPTIONAL qq_GridField2.setSize(new Dimension(309, 52));
// OPTIONAL qq_GridField2.setMinimumSize(new Dimension(309, 52));
// OPTIONAL qq_GridField2.setPreferredSize(new Dimension(309, 52));
GridBagConstraints qq_gbc = new GridBagConstraints();
qq_gbc.gridx = 0; // Column 1
qq_gbc.gridy = 0; // Row 1
qq_gbc.weightx = 0;
qq_gbc.weighty = 0;
qq_gbc.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER gf
qq_gbc.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc.insets = new Insets(4, 4, 4, 4); // Top, Left, Bottom, Right Margin
qq_GridField2.add( getqq_YesPB(), qq_gbc );
GridBagConstraints qq_gbc1 = new GridBagConstraints();
qq_gbc1.gridx = 1; // Column 2
qq_gbc1.gridy = 0; // Row 1
qq_gbc1.weightx = 0;
qq_gbc1.weighty = 0;
qq_gbc1.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER gf
qq_gbc1.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc1.insets = new Insets(4, 4, 4, 4); // Top, Left, Bottom, Right Margin
qq_GridField2.add( getqq_NoPB(), qq_gbc1 );
GridBagConstraints qq_gbc2 = new GridBagConstraints();
qq_gbc2.gridx = 2; // Column 3
qq_gbc2.gridy = 0; // Row 1
qq_gbc2.weightx = 0;
qq_gbc2.weighty = 0;
qq_gbc2.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER gf
qq_gbc2.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc2.insets = new Insets(4, 4, 4, 4); // Top, Left, Bottom, Right Margin
qq_GridField2.add( getqq_OKPB(), qq_gbc2 );
GridBagConstraints qq_gbc3 = new GridBagConstraints();
qq_gbc3.gridx = 3; // Column 4
qq_gbc3.gridy = 0; // Row 1
qq_gbc3.weightx = 0;
qq_gbc3.weighty = 0;
qq_gbc3.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER gf
qq_gbc3.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc3.insets = new Insets(4, 4, 4, 4); // Top, Left, Bottom, Right Margin
qq_GridField2.add( getqq_CancelPB(), qq_gbc3 );
}
return qq_GridField2;
}
/**
* qq_StopMessage: transformed from: qqds_ToggleField
* TagId=65526
*/
public JCheckBox getqq_StopMessage() {
if (qq_StopMessage == null) {
qq_StopMessage = ToggleFieldFactory.newToggleField("Do not confirm this operation in the future.", "StopMessage");
getBindingManager().bindComponent(qq_StopMessage, "stopMessage");
UIutils.setMsgSet(qq_StopMessage, 60100);
UIutils.setMsgNumber(qq_StopMessage, 604);
// OPTIONAL UIutils.reloadLabelText(qq_StopMessage, mcat);
}
return qq_StopMessage;
}
/**
* qq_GridField: transformed from: qqds_GridField
* TagId=65535
* In forte this was a 1x3 grid field.
* There are no cell margins set
* The width policy is set to Natural, and the height policy is set to Natural.
*/
public GridField getqq_GridField() {
if (qq_GridField == null) {
qq_GridField = CompoundFieldFactory.newGridField("");
qq_GridField.setCellGravity(Constants.CG_CENTER);
qq_GridField.setCollapsed(true);
qq_GridField.setInsertPolicy(Constants.IP_EXPAND);
qq_GridField.setHeightPolicy(Constants.SP_NATURAL);
qq_GridField.setWidthPolicy(Constants.SP_NATURAL);
// OPTIONAL UIutils.reloadLabelText(qq_GridField, mcat);
qq_GridField.setBackground(null);
// OPTIONAL qq_GridField.setSize(new Dimension(309, 146));
// OPTIONAL qq_GridField.setMinimumSize(new Dimension(309, 146));
// OPTIONAL qq_GridField.setPreferredSize(new Dimension(309, 146));
GridBagConstraints qq_gbc = new GridBagConstraints();
qq_gbc.gridx = 0; // Column 1
qq_gbc.gridy = 0; // Row 1
qq_gbc.weightx = 0;
qq_gbc.weighty = 0;
qq_gbc.anchor = GridBagConstraints.WEST; // Gravity - original: CG_MIDDLELEFT
qq_gbc.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc.insets = new Insets(0, 0, 0, 0); // Top, Left, Bottom, Right Margin
qq_GridField.add( getqq_GridField1(), qq_gbc );
GridBagConstraints qq_gbc1 = new GridBagConstraints();
qq_gbc1.gridx = 0; // Column 1
qq_gbc1.gridy = 1; // Row 2
qq_gbc1.weightx = 0;
qq_gbc1.weighty = 0;
qq_gbc1.anchor = GridBagConstraints.CENTER; // Gravity - original: CG_CENTER gf
qq_gbc1.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc1.insets = new Insets(0, 0, 0, 0); // Top, Left, Bottom, Right Margin
qq_GridField.add( getqq_GridField2(), qq_gbc1 );
GridBagConstraints qq_gbc2 = new GridBagConstraints();
qq_gbc2.gridx = 0; // Column 1
qq_gbc2.gridy = 2; // Row 3
qq_gbc2.weightx = 0;
qq_gbc2.weighty = 0;
qq_gbc2.anchor = GridBagConstraints.WEST; // Gravity - original: CG_MIDDLELEFT
qq_gbc2.fill = GridBagConstraints.NONE; // Size to parent - original: No size to parent
qq_gbc2.insets = new Insets(0, 4, 0, 0); // Top, Left, Bottom, Right Margin
qq_GridField.add( getqq_StopMessage(), qq_gbc2 );
}
return qq_GridField;
}
/**
* Form: transformed from: qqds_Panel
* TagId=1
*/
public JPanel getForm() {
if (Form == null) {
Form = CompoundFieldFactory.newForm();
Form.setLayout(new WindowFormLayout(this));
Form.setOpaque( true );
Form.add( getqq_GridField() );
}
return Form;
}
/**
* Gets the system close policy
*
* The SystemClosePolicy property determines how a window responds to user attempts to close it by using the native window system through the window close box or a window system menu command.
* SystemClosePolicy responds to window closure attempts according to the following parameters:
* <li>Constants.SC_DISABLED Does not allow window closure through window system.</li>
* <li>Constants.SC_ENABLEDNOFINALIZE Window can be closed, but the contents are not verified, guaranteeing that the window will close (for example, the user clicks the Cancel button).</li>
* <li>Constants.SC_ENABLEDFINALIZE Posts the RequestFinalize method on the window, with a reason code of zero.</li>
* <li>Constants.SC_ENABLEDSHUTDOWN Posts Shutdown event to window�s task and to all tasks started by that task. This is the default value.</li>
*/
public int getSystemClosePolicy() {
return qq_SystemClosePolicy;
}
/**
* Sets the system close policy
*
* The SystemClosePolicy property determines how a window responds to user attempts to close it by using the native window system through the window close box or a window system menu command.
* SystemClosePolicy responds to window closure attempts according to the following parameters:
* <li>Constants.SC_DISABLED Does not allow window closure through window system.</li>
* <li>Constants.SC_ENABLEDNOFINALIZE Window can be closed, but the contents are not verified, guaranteeing that the window will close (for example, the user clicks the Cancel button).</li>
* <li>Constants.SC_ENABLEDFINALIZE Posts the RequestFinalize method on the window, with a reason code of zero.</li>
* <li>Constants.SC_ENABLEDSHUTDOWN Posts Shutdown event to window�s task and to all tasks started by that task. This is the default value.</li>
*/
public void setSystemClosePolicy(int policy) {
this.qq_SystemClosePolicy = policy;
if (policy == Constants.SC_DISABLED) {
this.addComponentListener(new CloseHideAdaptor(this));
} else {
for (ComponentListener cl : this.getComponentListeners()) {
if (cl instanceof CloseHideAdaptor) {
this.removeComponentListener(cl);
break;
}
}
}
}
/**
* Gets the initial position policy
*
* The InitialPositionPolicy property sets the position of a main window when it is first displayed, relative to a primary window or the screen.
* You use the InitialPositionPolicy property in conjunction with the InitialX, InitialY properties.
* InitialPositionPolicy sets the position of a window according to the following values:
* <li>Constants.PP_SYSTEMDEFAULT Accepts the default window system placement specification.</li>
* <li>Constants.PP_PRIMARYCENTERED Centers the window relative to the window specified as the PrimaryWindow property.</li>
* <li>Constants.PP_PRIMARYRELATIVE Positions the window relative to the primary window, using the PrimaryWindow, InitialX and InitialY attributes.</li>
* <li>Constants.PP_SCREENCENTERED Centers the window relative to the screen.</li>
* <li>Constants.PP_SCREENRELATIVE Positions the window relative to the screen, using the InitialX and InitialY properties.</li>
*/
public int getInitialPositionPolicy() {
return qq_initialPositionPolicy;
}
/**
* Sets the initial position policy
*
* The InitialPositionPolicy property sets the position of a main window when it is first displayed, relative to a primary window or the screen.
* You use the InitialPositionPolicy property in conjunction with the InitialX, InitialY properties.
* InitialPositionPolicy sets the position of a window according to the following values:
* <li>Constants.PP_SYSTEMDEFAULT Accepts the default window system placement specification.</li>
* <li>Constants.PP_PRIMARYCENTERED Centers the window relative to the window specified as the PrimaryWindow property.</li>
* <li>Constants.PP_PRIMARYRELATIVE Positions the window relative to the primary window, using the PrimaryWindow, InitialX and InitialY attributes.</li>
* <li>Constants.PP_SCREENCENTERED Centers the window relative to the screen.</li>
* <li>Constants.PP_SCREENRELATIVE Positions the window relative to the screen, using the InitialX and InitialY properties.</li>
*/
public void setInitialPositionPolicy(int policy) {
this.qq_initialPositionPolicy = policy;
UserWindow.setInitialPositionPolicy(this, policy);
}
/**
* Gets the InitialX value
*
* The InitialX property (integer) is the window�s initial horizontal screen position, relative to a primary window or the screen. It is specified in mils.
* InitialX applies only to main windows and only when a window�s InitialPositionPolicy attribute is set to PP_PRIMARYRELATIVE (relative to the primary window) or PP_SCREENRELATIVE (relative to the screen).
* InitialX, and its corollary, InitialY, work in conjunction with the PrimaryWindow and InitialPositionPolicy attributes to determine the position of a main window when it is first realized.
*/
public int getInitialX() {
return initialX;
}
/**
* Sets the InitialX value
*
* The InitialX property (integer) is the window�s initial horizontal screen position, relative to a primary window or the screen. It is specified in mils.
* InitialX applies only to main windows and only when a window�s InitialPositionPolicy attribute is set to PP_PRIMARYRELATIVE (relative to the primary window) or PP_SCREENRELATIVE (relative to the screen).
* InitialX, and its corollary, InitialY, work in conjunction with the PrimaryWindow and InitialPositionPolicy attributes to determine the position of a main window when it is first realized.
*/
public void setInitialX(int value) {
this.initialX = value;
}
/**
* Gets the InitialY value
*
* The InitialY property (integer) is the window�s initial vertical screen position, relative to a primary window or the screen. It is specified in mils.
* InitialY applies only to main windows and only when a window�s InitialPositionPolicy attribute is set to PP_PRIMARYRELATIVE (relative to the primary window) or PP_SCREENRELATIVE (relative to the screen).
* InitialY, and its corollary, InitialX, work in conjunction with the PrimaryWindow and InitialPositionPolicy attributes to determine the position of a main window when it is first realized.
*/
public int getInitialY() {
return initialY;
}
/**
* Sets the InitialY value
*
* The InitialY property (integer) is the window�s initial vertical screen position, relative to a primary window or the screen. It is specified in mils.
* InitialY applies only to main windows and only when a window�s InitialPositionPolicy attribute is set to PP_PRIMARYRELATIVE (relative to the primary window) or PP_SCREENRELATIVE (relative to the screen).
* InitialY, and its corollary, InitialX, work in conjunction with the PrimaryWindow and InitialPositionPolicy attributes to determine the position of a main window when it is first realized.
*/
public void setInitialY(int value) {
this.initialY = value;
}
/**
* Gets the default message set number for the window and its widgets.
*/
public int getSetNum() {
return this.qq_defaultSet;
}
/**
* Sets the default message set number for the window and its widgets.
*/
public void setSetNum(int value) {
this.qq_defaultSet = value;
}
/**
* Gets the message set number for the message number of the window's title.
*/
public int getTitleSetNum() {
return this.qq_msgSet;
}
/**
* Sets the message set number for the message number of the window's title.
*/
public void setTitleSetNum(int value) {
this.qq_msgSet = value;
}
/**
* Gets the message number for the message number of the window's title.
*/
public int getTitleMsgNum() {
return this.qq_msgNumber;
}
/**
* Sets the message number for the message number of the window's title.
*/
public void setTitleMsgNum(int value) {
this.qq_msgNumber = value;
}
/**
* Initialise the window and all its children.
*/
private void initialize() {
this.setName( "ConfirmationWindow" );
this.setTitle( "Question" );
this.setSystemClosePolicy(Constants.SC_DISABLED);
if (this.getContentPane() != this.getForm()) {
this.setContentPane(getForm());
}
this.setResizable( false );
this.setAlwaysOnTop(false);
WindowManager.addWindowListener(this);
this.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
this.setUsage(DisplayProject.Constants.WU_UPDATE);
UIutils.processGUIActions();
this.pack();
this.setInitialX(0);
this.setInitialY(0);
this.setInitialPositionPolicy(Constants.PP_PRIMARYCENTERED);
}
// ----------------
// Window usage
//-----------------
private UsageMap[] usageUpdate;
public UsageMap[] getUsageUpdate() {
if (usageUpdate == null) {
usageUpdate = new UsageMap[] {
new UsageMap(getqq_GridField(), Constants.FS_UPDATE),
new UsageMap(getqq_GridField1(), Constants.FS_UPDATE),
new UsageMap(getqq_PictureGraphic(), Constants.FS_INACTIVE),
new UsageMap(getqq_Message(), Constants.FS_INACTIVE),
new UsageMap(getqq_GridField2(), Constants.FS_UPDATE),
new UsageMap(getqq_YesPB(), Constants.FS_UPDATE),
new UsageMap(getqq_NoPB(), Constants.FS_UPDATE),
new UsageMap(getqq_OKPB(), Constants.FS_UPDATE),
new UsageMap(getqq_CancelPB(), Constants.FS_UPDATE),
new UsageMap(getqq_StopMessage(), Constants.FS_UPDATE),
};
}
return usageUpdate;
}
private UsageMap[] usageView;
public UsageMap[] getUsageView() {
if (usageView == null) {
usageView = new UsageMap[] {
new UsageMap(getqq_GridField(), Constants.FS_UPDATE),
new UsageMap(getqq_GridField1(), Constants.FS_UPDATE),
new UsageMap(getqq_PictureGraphic(), Constants.FS_INACTIVE),
new UsageMap(getqq_Message(), Constants.FS_INACTIVE),
new UsageMap(getqq_GridField2(), Constants.FS_UPDATE),
new UsageMap(getqq_YesPB(), Constants.FS_VIEWONLY),
new UsageMap(getqq_NoPB(), Constants.FS_VIEWONLY),
new UsageMap(getqq_OKPB(), Constants.FS_VIEWONLY),
new UsageMap(getqq_CancelPB(), Constants.FS_VIEWONLY),
new UsageMap(getqq_StopMessage(), Constants.FS_VIEWONLY),
};
}
return usageView;
}
private UsageMap[] usageQuery;
public UsageMap[] getUsageQuery() {
if (usageQuery == null) {
usageQuery = new UsageMap[] {
new UsageMap(getqq_GridField(), Constants.FS_QUERY),
new UsageMap(getqq_GridField1(), Constants.FS_QUERY),
new UsageMap(getqq_PictureGraphic(), Constants.FS_INACTIVE),
new UsageMap(getqq_Message(), Constants.FS_INACTIVE),
new UsageMap(getqq_GridField2(), Constants.FS_QUERY),
new UsageMap(getqq_YesPB(), Constants.FS_QUERY),
new UsageMap(getqq_NoPB(), Constants.FS_QUERY),
new UsageMap(getqq_OKPB(), Constants.FS_QUERY),
new UsageMap(getqq_CancelPB(), Constants.FS_QUERY),
new UsageMap(getqq_StopMessage(), Constants.FS_QUERY),
};
}
return usageQuery;
}
private UsageMap[] usageUser1;
public UsageMap[] getUsageUser1() {
if (usageUser1 == null) {
usageUser1 = new UsageMap[] {
new UsageMap(getqq_GridField(), Constants.FS_UPDATE),
new UsageMap(getqq_GridField1(), Constants.FS_UPDATE),
new UsageMap(getqq_PictureGraphic(), Constants.FS_INACTIVE),
new UsageMap(getqq_Message(), Constants.FS_INACTIVE),
new UsageMap(getqq_GridField2(), Constants.FS_UPDATE),
new UsageMap(getqq_YesPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_NoPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_OKPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_CancelPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_StopMessage(), Constants.FS_UPDATE),
};
}
return usageUser1;
}
private UsageMap[] usageUser2;
public UsageMap[] getUsageUser2() {
if (usageUser2 == null) {
usageUser2 = new UsageMap[] {
new UsageMap(getqq_GridField(), Constants.FS_UPDATE),
new UsageMap(getqq_GridField1(), Constants.FS_UPDATE),
new UsageMap(getqq_PictureGraphic(), Constants.FS_INACTIVE),
new UsageMap(getqq_Message(), Constants.FS_INACTIVE),
new UsageMap(getqq_GridField2(), Constants.FS_UPDATE),
new UsageMap(getqq_YesPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_NoPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_OKPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_CancelPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_StopMessage(), Constants.FS_UPDATE),
};
}
return usageUser2;
}
private UsageMap[] usageUser3;
public UsageMap[] getUsageUser3() {
if (usageUser3 == null) {
usageUser3 = new UsageMap[] {
new UsageMap(getqq_GridField(), Constants.FS_UPDATE),
new UsageMap(getqq_GridField1(), Constants.FS_UPDATE),
new UsageMap(getqq_PictureGraphic(), Constants.FS_INACTIVE),
new UsageMap(getqq_Message(), Constants.FS_INACTIVE),
new UsageMap(getqq_GridField2(), Constants.FS_UPDATE),
new UsageMap(getqq_YesPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_NoPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_OKPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_CancelPB(), Constants.FS_INACTIVE),
new UsageMap(getqq_StopMessage(), Constants.FS_UPDATE),
};
}
return usageUser3;
}
protected int Usage = 0;
public int getUsage() {
if (Usage == 0) {
this.setUsage(DisplayProject.Constants.WU_UPDATE);
}
return this.Usage;
}
/**
* Sets the window usage
*
* The Usage property sets the state for all a window�s child widgets at once, providing collective widget state changes on a predefined basis. A widget�s state determines how the widget reacts to mouse actions and how it displays itself. A window�s Usage property provides a convenient way to control the states of a group of widgets in the context of their parent window. With the Usage attribute, you can synchronize widget states to conform to a pattern you establish for the window.
* The Usage attribute accepts the following values:
* <li>Constants.WU_EDIT Edit usage: widgets themselves are editable, but not underlying data.</li>
* <li>Constants.WU_QUERY Query only usage: widget data is editable, but not widgets themselves.</li>
* <li>Constants.WU_UPDATE Update usage: mouse actions and keyboard input accepted. Widgets themselves are changeable. This is the default.</li>
* <li>Constants.WU_USER1 A user-defined usage. Default values same as WU_UPDATE.</li>
* <li>Constants.WU_USER2 A user-defined usage. Default values same as WU_UPDATE.</li>
* <li>Constants.WU_USER3 A user-defined usage. Default values same as WU_UPDATE.</li>
* <li>Constants.WU_VIEW View-only usage: no keyboard input is accepted. Widget posts Click events for mouse clicks.</li>
*/
public void setUsage(int u) {
if (this.Usage != u) {
this.Usage = u;
UsageMap[] usage = null;
switch (u) {
case DisplayProject.Constants.WU_UPDATE:
usage = this.getUsageUpdate();
break;
case DisplayProject.Constants.WU_VIEW:
usage = this.getUsageView();
break;
case DisplayProject.Constants.WU_QUERY:
usage = this.getUsageQuery();
break;
case DisplayProject.Constants.WU_USER1:
usage = this.getUsageUser1();
break;
case DisplayProject.Constants.WU_USER2:
usage = this.getUsageUser2();
break;
case DisplayProject.Constants.WU_USER3:
usage = this.getUsageUser3();
break;
default:
throw new UsageException("Window usage " + u + " is unknown." );
}
for (int i = 0 ; i < usage.length; i++) {
WidgetState.set((JComponent)usage[i].getComponent(), usage[i].getState());
}
}
}
// </editor-fold>
// -----------
// Main method
// -----------
public static void main(String []args) {
KeyboardFocusManager.setCurrentKeyboardFocusManager(new ForteKeyboardFocusManager());
try {
// To change to platform look and feel, uncomment the following line,
// and remove the WindowsClassicLookAndFeel
// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
// Forte displayed windows with a clasic Look and Feel
UIManager.setLookAndFeel(new WindowsClassicLookAndFeel());
}
catch (Exception e) {}
ToolTipManager.sharedInstance().setDismissDelay(Integer.MAX_VALUE);
ConfirmationWindow myClass = new ConfirmationWindow();
myClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myClass.setVisible(true);
UIutils.processGUIActions();
}
} // end class ConfirmationWindow
// c Pass 2 Conversion Time: 844 milliseconds