dhis-mobile-devs team mailing list archive
-
dhis-mobile-devs team
-
Mailing list archive
-
Message #00439
[Branch ~dhis-mobile-devs/dhis-mobile/lwuit-tracking] Rev 244: CreateProgramStageView
------------------------------------------------------------
revno: 244
committer: sherylyn.marie
branch nick: lwuit-tracking
timestamp: Wed 2014-11-05 22:25:26 +0800
message:
CreateProgramStageView
added:
src/org/hisp/dhis/mobile/view/CreateProgramStageView.java
--
lp:~dhis-mobile-devs/dhis-mobile/lwuit-tracking
https://code.launchpad.net/~dhis-mobile-devs/dhis-mobile/lwuit-tracking
Your team DHIS mobile developers is subscribed to branch lp:~dhis-mobile-devs/dhis-mobile/lwuit-tracking.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis-mobile-devs/dhis-mobile/lwuit-tracking/+edit-subscription
=== added file 'src/org/hisp/dhis/mobile/view/CreateProgramStageView.java'
--- src/org/hisp/dhis/mobile/view/CreateProgramStageView.java 1970-01-01 00:00:00 +0000
+++ src/org/hisp/dhis/mobile/view/CreateProgramStageView.java 2014-11-05 14:25:26 +0000
@@ -0,0 +1,227 @@
+package org.hisp.dhis.mobile.view;
+
+import java.util.Vector;
+
+import org.hisp.dhis.mobile.connection.ConnectionManager;
+import org.hisp.dhis.mobile.midlet.DHISMIDlet;
+import org.hisp.dhis.mobile.midlet.NameBasedMIDlet;
+import org.hisp.dhis.mobile.model.Program;
+import org.hisp.dhis.mobile.model.ProgramInstance;
+import org.hisp.dhis.mobile.model.ProgramStage;
+import org.hisp.dhis.mobile.util.PeriodUtil;
+
+import com.sun.lwuit.ComboBox;
+import com.sun.lwuit.Command;
+import com.sun.lwuit.Form;
+import com.sun.lwuit.Label;
+import com.sun.lwuit.TextField;
+import com.sun.lwuit.animations.CommonTransitions;
+import com.sun.lwuit.events.ActionEvent;
+import com.sun.lwuit.events.ActionListener;
+import com.sun.lwuit.layouts.BoxLayout;
+
+public class CreateProgramStageView
+ extends AbstractView
+ implements ActionListener
+{
+ private static final String CLASS_TAG = "CreateProgramStageView";
+
+ private Form createProgramStageForm;
+
+ private NameBasedMIDlet nameBasedMIDlet;
+
+ private Program program;
+
+ private ProgramInstance programInstance;
+
+ private Vector programStages;
+
+ private ComboBox programStageOptions;
+
+ private TextField dueDateTextField;
+
+ private Label lblWrongFormat;
+
+ public CreateProgramStageView( DHISMIDlet dhisMIDlet )
+ {
+ super( dhisMIDlet );
+ this.nameBasedMIDlet = (NameBasedMIDlet) this.dhisMIDlet;
+ }
+
+ public void prepareView()
+ {
+ System.gc();
+ getCreateProgramStageForm();
+ createProgramStageForm.removeAll();
+
+ Label lblProgramStage = new Label( "Program stage" );
+ createProgramStageForm.addComponent( lblProgramStage );
+ createProgramStageForm.addComponent( getProgramStageOptions() );
+
+ Label lblDueDate = new Label( "Due date" );
+ createProgramStageForm.addComponent( lblDueDate );
+ dueDateTextField = new TextField();
+ dueDateTextField.setHint( "YYYY-MM-dd" );
+ createProgramStageForm.addComponent( dueDateTextField );
+
+ createProgramStageForm.addComponent( getLblWrongFormat() );
+ }
+
+ public void showView()
+ {
+ prepareView();
+ getCreateProgramStageForm().show();
+ }
+
+ private Form getCreateProgramStageForm()
+ {
+ if ( createProgramStageForm == null )
+ {
+ createProgramStageForm = new Form( "Create Program Stage" );
+ createProgramStageForm.setLayout( new BoxLayout( BoxLayout.Y_AXIS ) );
+ createProgramStageForm.setTransitionOutAnimator( CommonTransitions.createSlide(
+ CommonTransitions.SLIDE_HORIZONTAL, true, 200 ) );
+ createProgramStageForm.addCommandListener( this );
+ createProgramStageForm.addCommand( new Command( "Back" ) );
+ createProgramStageForm.addCommand( new Command( "Create" ) );
+ }
+ return createProgramStageForm;
+ }
+
+ public ComboBox getProgramStageOptions()
+ {
+ if ( programStageOptions == null )
+ {
+ programStages = new Vector();
+ for ( int i = 0; i < program.getProgramStages().size(); i++ )
+ {
+ ProgramStage programStage = (ProgramStage) program.getProgramStages().elementAt( i );
+ if ( programStage.isRepeatable() )
+ {
+ programStages.addElement( programStage );
+ }
+ }
+
+ programStageOptions = new ComboBox();
+ for ( int i = 0; i < programStages.size(); i++ )
+ {
+ programStageOptions.addItem( ((ProgramStage) programStages.elementAt( i )).getName() );
+ }
+ programStageOptions.setSelectedIndex( 0 );
+ }
+
+ return programStageOptions;
+ }
+
+ public Label getLblWrongFormat()
+ {
+ if ( lblWrongFormat == null )
+ {
+ lblWrongFormat = new Label();
+ lblWrongFormat.getStyle().setFgColor( 0xcc0000 );
+ }
+ return lblWrongFormat;
+ }
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ if ( ae.getCommand().getCommandName().equals( "Back" ) )
+ {
+ nameBasedMIDlet.getVisitScheduleMenuView().setProgram( program );
+ nameBasedMIDlet.getVisitScheduleMenuView().showView();
+
+ programStages.removeAllElements();
+ createProgramStageForm = null;
+ programStages = null;
+ programStageOptions = null;
+ dueDateTextField = null;
+ lblWrongFormat = null;
+ program = null;
+ programInstance = null;
+ System.gc();
+ }
+ else if ( ae.getCommand().getCommandName().equals( "Create" ) )
+ {
+ String dueDate = dueDateTextField.getText().trim();
+ if ( validateDueDate( dueDate ) == false )
+ {
+ getCreateProgramStageForm().show();
+ }
+ else
+ {
+ nameBasedMIDlet.getWaitingView().showView();
+
+ ConnectionManager.setUrl( nameBasedMIDlet.getCurrentOrgUnit().getGenerateRepeatableEventUrl() );
+ nameBasedMIDlet.getWaitingView().showView();
+ ProgramStage programStage = (ProgramStage) programStages.elementAt( programStageOptions
+ .getSelectedIndex() );
+ System.out.println( "SHERIE ****************************** generateRepeatableEvent :: "
+ + programStage.getName() + " :: " + programStage.getId() + "$" + dueDate );
+ ConnectionManager.generateRepeatableEvent( getProgramStageInstance(programStage.getName()).getId() + "$" + dueDate );
+
+ programStages.removeAllElements();
+ createProgramStageForm = null;
+ programStages = null;
+ programStageOptions = null;
+ dueDateTextField = null;
+ lblWrongFormat = null;
+ program = null;
+ programInstance = null;
+ System.gc();
+ }
+ }
+ }
+
+ public ProgramStage getProgramStageInstance( String programStageName )
+ {
+
+ for ( int j = programInstance.getProgramStageInstances().size() - 1; j >= 0; j++ )
+ {
+ ProgramStage programStage = (ProgramStage) programInstance.getProgramStageInstances().elementAt( j );
+ if ( programStage.getName().equals( programStageName ) )
+ {
+ return programStage;
+ }
+ }
+ return null;
+ }
+
+ public boolean validateDueDate( String dueDate )
+ {
+ if ( dueDate.equals( "" ) )
+ {
+ lblWrongFormat.setText( "(*):Required Field" );
+ return false;
+ }
+ else if ( PeriodUtil.isDateValid( dueDate ) == false )
+ {
+ lblWrongFormat.setText( "YYYY-MM-DD" );
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ public void setProgram( Program program )
+ {
+ this.program = program;
+ }
+
+ public Program getProgram()
+ {
+ return this.program;
+ }
+
+ public void setProgramInstance( ProgramInstance programInstance )
+ {
+ this.programInstance = programInstance;
+ }
+
+ public ProgramInstance getProgramInstance()
+ {
+ return this.programInstance;
+ }
+
+}