001 package market.stdform;
002
003 import java.awt.GridLayout;
004
005 import javax.swing.Box;
006 import javax.swing.BoxLayout;
007 import javax.swing.JLabel;
008 import javax.swing.JPanel;
009 import javax.swing.JTextField;
010
011 import market.CIArticle;
012 import market.VCPositiveInteger;
013 import market.swing.ComponentFactory;
014 import market.swing.JTFCheckable;
015 import sale.FormSheet;
016 import sale.FormSheetContentCreator;
017
018 /**
019 * This FormSheet displays the count of an article in the database and
020 * has a checkable textfield were the real count can be filled in.
021 */
022 public class FSWorkerEdit extends FormSheet{
023
024 public static final int JTFC_REAL = 0;
025
026 private CIArticle ci_article;
027 private int database;
028
029 /**
030 * @param article the CIArticle which`s count is incorrect.
031 * @param db the count of this article in the database.
032 */
033 public FSWorkerEdit(CIArticle article, int db) {
034 super("Fehlbestand", null);
035 ci_article = article;
036 database = db;
037 FormSheetContentCreator fscc = new FormSheetContentCreator(){
038 protected void createFormSheetContent(FormSheet fs) {
039 JPanel jp_main = new JPanel();
040 JPanel jp_grid = new JPanel();
041 jp_main.setLayout(new BoxLayout(jp_main, BoxLayout.Y_AXIS));
042 jp_grid.setLayout(new GridLayout(2,2));
043
044 JTextField jt_database = new JTextField(5);
045 jt_database.setText(String.valueOf(database));
046 jt_database.setEditable(false);
047 JTFCheckable jtfc_real = new JTFCheckable(JTFC_REAL, new VCPositiveInteger("realer Bestand"), 5);
048
049 jp_grid.setBorder(ComponentFactory.createInsetBorder("Artikel: "+ci_article.getArticleName()));
050 jp_grid.add(new JLabel("Datenbank-Bestand"));
051 jp_grid.add(jt_database);
052 jp_grid.add(new JLabel("realer Bestand"));
053 jp_grid.add(jtfc_real);
054
055 jp_main.add(Box.createVerticalStrut(160));
056 jp_main.add(jp_grid);
057 jp_main.add(Box.createVerticalStrut(160));
058
059 fs.setComponent(jp_main);
060 fs.removeAllButtons();
061 fs.addButton("Korrigiere", ButtonIDs.BTN_OK, null);
062 fs.addButton("Zurück", ButtonIDs.BTN_BACK, null);
063 }
064 };
065 this.addContentCreator(fscc);
066 }
067
068 /**
069 * @return a new {@link FSCheckable} that takes a FSWorkerEdit as argument
070 *
071 * @param article the CIArticle which`s count is incorrect.
072 * @param database the count of this article in the database.
073 */
074 public static FSCheckable create(CIArticle article, int database){
075 return new FSCheckable(new FSWorkerEdit(article, database));
076 }
077 }