/* * Copyright (c) 2003,2009 Declarative Engineering LLC. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Declarative Engineering LLC * verson 1 which accompanies this distribution, and is available at * http://declarativeengineering.com/legal/DE_Developer_License_v1.txt */ package com.foundation.tcv.swt.server; import com.foundation.view.*; import com.foundation.tcv.swt.*; import com.foundation.tcv.view.ViewMessage; import com.foundation.tcv.server.controller.*; public abstract class Dialog extends AbstractComponent implements IDialog { /** The text displayed in the dialog title bar. */ private String text = null; /** Identifies which dialog button was pressed. */ private Integer pressedButton = null; /** * Dialog constructor. */ public Dialog(SessionViewController sessionViewController) { super(sessionViewController); }//Dialog()// /** * Dialog constructor. */ public Dialog(IView parent) { super(((Container) parent).getSessionViewController()); }//Dialog()// /** * Gets the text displayed by the dialog. * @return The dialog text. */ public String getText() { return text; }//getText()// /** * Sets the dialog text. * @param text The text to be displayed in the dialog. */ public void setText(String text) { this.text = text; sendMessage(MESSAGE_SET_TEXT, text); }//setText()// /** * Opens the dialog making it visible to the user. *
Note: this call will block until the user closes the dialog.
* @return The id of the button pressed. */ public int open() { //Initialize the view.// viewInitializeAll(); //Send the dialog open message.// sendRoundTripMessage(MESSAGE_OPEN, null); //Release the view.// viewReleaseAll(); //Ensure that pressed button is never null.// if(pressedButton == null) { throw new RuntimeException("Error: Invalid pressedButton in Dialog."); }//if// return pressedButton.intValue(); }//open()// /** * Gets the id of the button used to close the dialog. *Example MessageDialog.STYLE_OK.
* @return The button id, or null if the dialog has not been opened. */ public Integer getPressedButton() { verifyThread(); return pressedButton; }//getPressedButton()// /* (non-Javadoc) * @see com.foundation.tcv.swt.server.AbstractComponent#internalViewInitialize() */ protected void internalViewInitialize() { super.internalViewInitialize(); }//internalViewInitialize()// /* (non-Javadoc) * @see com.foundation.tcv.swt.server.AbstractComponent#internalViewRelease() */ protected void internalViewRelease() { super.internalViewRelease(); }//internalViewRelease()// /* (non-Javadoc) * @see com.foundation.tcv.view.IViewComponent#processMessage(com.foundation.tcv.model.ViewMessage) */ public Object processMessage(ViewMessage viewMessage) { Object retVal = null; switch(viewMessage.getMessageNumber()) { case MESSAGE_SET_PRESSED_BUTTON: { pressedButton = (Integer) viewMessage.getMessageData(); break; }//case// default: { retVal = super.processMessage(viewMessage); }//default// }//switch// return retVal; }//processMessage()// }//Dialog//