← Back to team overview

dhis-mobile-devs team mailing list archive

[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;
+    }
+
+}