001 package org.springframework.richclient.widget;
002
003 import org.springframework.richclient.form.AbstractForm;
004 import org.springframework.richclient.command.AbstractCommand;
005 import org.springframework.binding.form.HierarchicalFormModel;
006 import org.springframework.binding.form.FormModel;
007 import org.springframework.binding.value.ValueModel;
008
009 import javax.swing.*;
010 import java.util.List;
011 import java.util.Collections;
012
013 /**
014 * Provides an easy way to create widgets based on an AbstractForm.
015 */
016 public abstract class AbstractWidgetForm extends AbstractForm implements Widget
017 {
018 /** Id for the undo command. */
019 public static final String UNDO_CMD_ID = "undo";
020
021 /** Id for the save command. */
022 public static final String SAVE_CMD_ID = "save";
023
024 protected boolean showing = false;
025
026 protected AbstractWidgetForm() {
027 super();
028 }
029
030 protected AbstractWidgetForm(String formId) {
031 super(formId);
032 }
033
034 protected AbstractWidgetForm(Object formObject) {
035 super(formObject);
036 }
037
038 protected AbstractWidgetForm(FormModel pageFormModel) {
039 super(pageFormModel);
040 }
041
042 protected AbstractWidgetForm(FormModel formModel, String formId) {
043 super(formModel, formId);
044 }
045
046 protected AbstractWidgetForm(HierarchicalFormModel parentFormModel, String formId, String childFormObjectPropertyPath) {
047 super(parentFormModel, formId, childFormObjectPropertyPath);
048 }
049
050 protected AbstractWidgetForm(HierarchicalFormModel parentFormModel, String formId, ValueModel childFormObjectHolder) {
051 super(parentFormModel, formId, childFormObjectHolder);
052 }
053
054 public boolean canClose()
055 {
056 return true;
057 }
058
059 public List<? extends AbstractCommand> getCommands()
060 {
061 return Collections.emptyList();
062 }
063
064 public JComponent getComponent()
065 {
066 return getControl();
067 }
068
069 public void onAboutToHide()
070 {
071 showing = false;
072 }
073
074 public void onAboutToShow()
075 {
076 showing = true;
077 }
078
079 public boolean isShowing()
080 {
081 return showing;
082 }
083
084 @Override
085 protected String getCommitCommandFaceDescriptorId()
086 {
087 return SAVE_CMD_ID;
088 }
089
090 @Override
091 protected String getRevertCommandFaceDescriptorId()
092 {
093 return UNDO_CMD_ID;
094 }
095 }
096