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