001 /*
002 * Copyright 2002-2004 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.dialog;
017
018 import java.awt.Image;
019
020 import javax.swing.Icon;
021
022 import org.springframework.binding.value.PropertyChangePublisher;
023 import org.springframework.richclient.core.Guarded;
024 import org.springframework.richclient.core.Message;
025 import org.springframework.richclient.factory.ControlFactory;
026
027 /**
028 * DialogPages are used to combine several controls in one Dialog which acts as
029 * a container. Different implementations are available to create tabs/trees or
030 * wizard-like sequences.
031 *
032 * @author Keith Donald
033 */
034 public interface DialogPage extends ControlFactory, Messagable, Guarded, PropertyChangePublisher {
035
036 public static final String DESCRIPTION_PROPERTY = "description";
037
038 public static final String PAGE_COMPLETE_PROPERTY = "pageComplete";
039
040 /**
041 * Returns this page's name.
042 *
043 * @return the name of this page
044 */
045 public String getId();
046
047 /**
048 * Returns this dialog page's title.
049 *
050 * @return the title of this dialog page, or <code>null</code> if none
051 */
052 public String getTitle();
053
054 /**
055 * Returns this dialog page's description text.
056 *
057 * @return the description text for this dialog page, or <code>null</code>
058 * if none
059 */
060 public String getDescription();
061
062 /**
063 * Returns the current message for this dialog page.
064 *
065 * @return the message, or <code>null</code> if none
066 */
067 public Message getMessage();
068
069 /**
070 * Returns this dialog page's image.
071 *
072 * @return the image for this dialog page, or <code>null</code> if none
073 */
074 public Image getImage();
075
076 /**
077 * Returns this dialog page's icon.
078 *
079 * @return the icon for this dialog page, or <code>null</code> if none
080 */
081 public Icon getIcon();
082
083 /**
084 * Notifies that help has been requested for this dialog page.
085 */
086 public void performHelp();
087
088 /**
089 * Sets the visibility of this dialog page.
090 *
091 * @param visible <code>true</code> to make this page visible, and
092 * <code>false</code> to hide it
093 */
094 public void setVisible(boolean visible);
095
096 /**
097 * Returns the visibility of this dialog page.
098 *
099 * @return <code>true</code> this page is visible, or <code>false</code>
100 * if this page is hidden
101 */
102 public boolean isVisible();
103
104 /**
105 * Returns whether this page is complete or not.
106 * <p>
107 * This information is typically to decide when it is okay to submit a form.
108 * </p>
109 *
110 * @return <code>true</code> if this page is complete, and
111 * <code>false</code> otherwise
112 */
113 public boolean isPageComplete();
114
115 }