package org.wordcorr.gui; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.*; import org.wordcorr.db.Persistent; import org.wordcorr.gui.action.SavePersistent; import org.wordcorr.gui.action.RevertPersistent; /** * Pane that allows you to save a persistent object. The persistent * object must be registered in the beans.xml file. * * @author Keith Hamasaki, Jim Shiba **/ class SavePane extends JPanel { private static final Class[] CONS_ARGS = { String.class, Class.class }; /** * Constructor. * @param persistent The persistent object to edit and save * @param refresh A Refreshable object to refresh PropertyPane and on save **/ SavePane(String labelKey, Persistent persistent, Refreshable refresh) { this(labelKey, persistent, refresh, false); } /** * Constructor. * @param persistent The persistent object to edit and save * @param refresh A Refreshable object to refresh PropertyPane and on save **/ SavePane(String labelKey, Persistent persistent, Refreshable refresh, boolean showButtons) { super(new BorderLayout()); _persistent = persistent; _refresh = refresh; _propertyPane = new PropertyPane(labelKey, (Object)persistent, refresh); add(_propertyPane, BorderLayout.CENTER); if (showButtons) add(new ButtonPanel(), BorderLayout.SOUTH); } /** * Initialize. * @param persistent The persistent object to edit and save * @param propertyRefresh A Refreshable object to refresh PropertyPane * @param refresh A Refreshable object to refresh on save **/ private void init(String labelKey, Persistent persistent, Refreshable propertyRefresh, Refreshable refresh) { } private final class ButtonPanel extends JPanel { ButtonPanel() { super(new FlowLayout(FlowLayout.CENTER)); final Messages messages = AppPrefs.getInstance().getMessages(); JButton saveButton = new WButton(new SavePersistent("btnSave", "accSave", _propertyPane.getInfo(), _persistent, _refresh)); this.add(saveButton); // Remove Revert button // JButton revertButton = new WButton(new RevertPersistent("btnRevert", "accRevert", _propertyPane.getInfo(), _persistent, _refresh)); // this.add(revertButton); } } /** * Get Property Pane. **/ public PropertyPane getPropertyPane() { return _propertyPane; } private final Persistent _persistent; private final Refreshable _refresh; private final PropertyPane _propertyPane; }