package captor.modelsystem.gui; import java.util.Observable; import javax.swing.tree.DefaultMutableTreeNode; import captor.lib.def.Constant; import captor.windowsystem.formcomponent.FormComponent; /** * This bean control the application GUI behavior in a MVC architecture. * * <p> * It is used by windowsystem components clients to inform about the * window behavior changes. * </p> * * <p> * For example: If the user clicks in some node in the navigation panel, * the body panel must responds showing the rigth form to the user. * </p> * * <p> * The navigation panel will never invoke the body panel or any other * component directly. Instead the client should only change a GuiControl * atribute. * </p> * * <p> * The notification propagation system will take care to notify all interesteds * in the model change. * </p> * * @author Kicho */ public class GUIControl extends Observable { private boolean showNewProjectWindow; private boolean exit; private boolean closeProject; private boolean loadPattern; private boolean loadedPattern; private boolean saveModel; private boolean hideNavigator; private FormComponent formError; private DefaultMutableTreeNode nodeError; public GUIControl() { exit = false; } /** * @return Returns the hideNavigator. */ public boolean isHideNavigator() { return hideNavigator; } /** * @param hideNavigator The hideNavigator to set. */ public void setHideNavigator(boolean hideNavigator) { this.hideNavigator = hideNavigator; setChanged(); if ( hideNavigator ) notifyObservers(Constant.SHOW_NAVIGATOR); else notifyObservers(Constant.HIDE_NAVIGATOR); } /** * @return Returns the loadedPattern. */ public boolean isLoadedPattern() { return loadedPattern; } /** * @param loadedPattern The loadedPattern to set. */ public void setLoadedPattern(boolean loadedPattern) { this.loadedPattern = loadedPattern; setChanged(); notifyObservers(Constant.LOADED_FORM); } /** * @return Returns the loadPattern. */ public boolean getLoadPattern() { return loadPattern; } /** * @param loadPattern The loadPattern to set. */ public void setLoadPattern(boolean loadPattern) { this.loadPattern = loadPattern; setChanged(); notifyObservers(Constant.LOAD_FORM); } /** * @return Returns the closeProject. */ public boolean getCloseProject() { return closeProject; } /** * @param closeProject The closeProject to set. */ public void setCloseProject(boolean closeProject) { this.closeProject = closeProject; setChanged(); notifyObservers(Constant.CLOSE_PROJECT); } /** * @return Returns the exit. */ public boolean getExit() { return exit; } /** * @param exit The exit to set. */ public void setExit(boolean exit) { this.exit = exit; setChanged(); notifyObservers(Constant.EXIT); } /** * @return Returns the showNewProject. */ public boolean getShowNewProjectWindow() { return showNewProjectWindow; } /** * @return Returns the saveModel. */ public boolean isSaveModel() { return saveModel; } /** * @param saveModel The saveModel to set. */ public void setSaveModel(boolean saveModel) { this.saveModel = saveModel; setChanged(); notifyObservers(Constant.SAVE_MODEL); } /** * @return Returns the formError. */ public FormComponent getFormError() { return formError; } /** * @param formError The formError to set. */ public void setFormError(FormComponent formError) { this.formError = formError; } /** * @return Returns the nodeError. */ public DefaultMutableTreeNode getNodeError() { return nodeError; } /** * @param nodeError The nodeError to set. */ public void setNodeError(DefaultMutableTreeNode nodeError) { this.nodeError = nodeError; } }