001 package data.stdforms.singletableformsheet;
002
003 import sale.*;
004 import sale.stdforms.*;
005
006 import data.stdforms.SingleTableFormSheet;
007
008 /**
009 * <i>Abstract</i> super class for strategies that can be associated with the
010 * {@link SingleTableFormSheet#addAddButton "Add"} and the
011 * {@link SingleTableFormSheet#addRemoveButton "Remove"} button of a {@link SingleTableFormSheet}.
012 *
013 * <p>The strategy defines a sub-process that can be integrated into the process that displayed the FormSheet
014 * to perform the editing.</p>
015 *
016 * @author Steffen Zschaler
017 * @version 2.0 20/08/1999
018 * @since v2.0
019 */
020 public abstract class EditButtonStrategy extends FormSheetStrategy {
021
022 /**
023 * Get the first transition of the process that will perform the editing. The process can have any number of
024 * {@link Gate Gates} and {@link Transition Transitions} and display any number of {@link FormSheet Form-}
025 * and {@link MenuSheet MenuSheets}. Normally, the sub-process should end at the gate at which the
026 * SingleTableFormSheet is being displayed, which can be obtained by
027 * {@link SingleTableFormSheet#getGate SingleTableFormSheet.getGate()}.
028 *
029 * @param stfs the SingleTableFormSheet that triggers the sub-process.
030 * @param p the process into which the sub-process will be implanted.
031 * @param sp the SalesPoint at which the FormSheet is displayed, if any.
032 *
033 * @override Always.
034 */
035 public abstract Transition getEditProcess(SingleTableFormSheet stfs, SaleProcess p, SalesPoint sp);
036 }