package captor.windowsystem.project.newproject; import java.awt.CardLayout; import java.awt.Color; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.JScrollPane; import captor.lib.intl.MyIntl; import captor.modelsystem.Model; import captor.modelsystem.Project; import captor.windowsystem.CaptorFrame; public class Body extends JPanel { public static final long serialVersionUID = 120; private static final String CARD1 = "card1"; private static final String CARD2 = "card2"; private static final String CARD3 = "card3"; private static final int FIRST = 1; private static final int SECOND = 2; private static final int THIRD = 3; private int state = 0; private Model model; private SelectProjectType card1; private CreateProject card2; private ShowDetails card3; private CaptorFrame frame; private Header header; private Project project; private Footer footer; public Body(Model model, CaptorFrame frame, Header header, Project project) { super(); this.model = model; this.frame = frame; this.header = header; this.project = project; create(); } //------------------------------------------------------------------------- public void create() { this.setBorder(BorderFactory.createLineBorder(Color.black)); this.setLayout(new CardLayout()); card1 = new SelectProjectType(model, project, this); add(card1, CARD1); card2 = new CreateProject(model, project, frame, this); add(card2, CARD2); } //------------------------------------------------------------------------- /** * @return Returns the footer. */ public Footer getFooter() { return footer; } /** * @param footer The footer to set. */ public void setFooter(Footer footer) { this.footer = footer; } /** * @return Returns the state. */ public int getState() { return state; } /** * @param state The state to set. */ public void setState(int state) { this.state = state; } //------------------------------------------------------------------------- public void first() { state = FIRST; CardLayout cl = (CardLayout)(getLayout()); cl.show(this, CARD1); header.setTitle(MyIntl.NEW_PROJECT_WINDOW_SELECT_WIZARD); header.setDetails(MyIntl.NEW_PROJECT_WINDOW_CREATE_NEW_PROJECT); } //------------------------------------------------------------------------- public void second() { if ( card1.validateFields() ) { state = SECOND; CardLayout cl = (CardLayout)(getLayout()); cl.show(this, CARD2); header.setTitle(MyIntl.NEW_PROJECT_WINDOW_CREATE_CAPTOR_PROJECT); header.setDetails(MyIntl.NEW_PROJECT_WINDOW_CREATE_CAPTOR_PROJECT_WORKSPACE); card2.start(); } } //------------------------------------------------------------------------- public void third() { if ( card2.validateFields() ) { state = THIRD; header.setTitle(MyIntl.NEW_PROJECT_WINDOW_PROJECT_DETAILS); header.setDetails(MyIntl.NEW_PROJECT_WINDOW_PLEASE_CHECK); card3 = new ShowDetails(model, project); JScrollPane scroll = new JScrollPane(card3); scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); add(scroll, CARD3); CardLayout cl = (CardLayout)(getLayout()); cl.show(this, CARD3); } } //------------------------------------------------------------------------- public void next() { if ( state == FIRST ) { second(); } else if ( state == SECOND ) { third(); } footer.updateButtons(); } //------------------------------------------------------------------------- public void back() { if ( state == SECOND ) first(); else if ( state == THIRD ) second(); } //------------------------------------------------------------------------- public boolean hasNext() { if ( state == FIRST || state == SECOND ) return true; return false; } public boolean hasBack() { if ( state == SECOND || state == THIRD ) return true; return false; } //------------------------------------------------------------------------- }