dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #00107
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 36: mobile-dataentry: Added way to display how many fields are empty before sending SMS
------------------------------------------------------------
revno: 36
committer: Saptarshi <sunbiz@xxxxxxxxx>
branch nick: trunk
timestamp: Tue 2009-03-10 19:42:43 +0530
message:
mobile-dataentry: Added way to display how many fields are empty before sending SMS
modified:
local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.java
local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.vmd
=== modified file 'local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.java'
--- local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.java 2009-03-09 05:48:42 +0000
+++ local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.java 2009-03-10 14:12:43 +0000
@@ -2,6 +2,7 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
+import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
@@ -18,6 +19,7 @@
private boolean firstRun = false;
private RecordStore lastMsgStore = null;
private boolean savedMsg = false;
+ private ImageItem imgItem = new ImageItem(null,null,ImageItem.LAYOUT_TOP,null);
//<editor-fold defaultstate="collapsed" desc=" Generated Fields ">//GEN-BEGIN:|fields|0|
private java.util.Hashtable __previousDisplayables = new java.util.Hashtable();
private Form ancPage;
@@ -173,7 +175,7 @@
} else {
firstRun = false;
}
- System.out.println("First Run: " + firstRun);
+ //System.out.println("First Run: " + firstRun);
if (firstRun) {
for (int i = 0; i < 90; i++) {
@@ -588,13 +590,14 @@
// write post-action user code here
} else if (command == healthFacilityCmd) {//GEN-LINE:|7-commandAction|31|158-preAction
// write pre-action user code here
+ getEmptyFields();
switchDisplayable(null, getSendPage());//GEN-LINE:|7-commandAction|32|158-postAction
// write post-action user code here
}//GEN-BEGIN:|7-commandAction|33|226-preAction
} else if (displayable == loadPage) {
if (command == loadCmd) {//GEN-END:|7-commandAction|33|226-preAction
int lastSelected = lastChoice.getSelectedIndex();
- System.out.println("Selected choice = " + lastSelected);
+ //System.out.println("Selected choice = " + lastSelected);
if (lastSelected == 0) {
editingLastReport = true;
} else {
@@ -637,8 +640,8 @@
switchDisplayable(null, getHealthFacilityPage());//GEN-LINE:|7-commandAction|48|171-postAction
// write post-action user code here
} else if (command == sendCmd) {//GEN-LINE:|7-commandAction|49|169-preAction
+
sendMsgLabel.setText("Sending SMS...");
-
final String monthData = String.valueOf(monthChoice.getSelectedIndex() + 1);
String ancFormData = pregNum.getString() + "|" + firstTrimesterNum.getString() + "|" + jsyNum.getString() + "|" + threeAncNum.getString() + "|" + tt1Num.getString() + "|" + boosterNum.getString() + "|" + ifaTabletNum.getString() + "|" + hypertensionNum.getString() + "|" + anaemicAncNum.getString();
String deliveriesFormData = sbaHomeNum.getString() + "|" + nonSbaHomeNum.getString() + "|" + newbornsHomeNum.getString() + "|" + jsyHomeNum.getString() + "|" + facilityNum.getString() + "|" + earlyDischargeNum.getString() + "|" + jsyFacilityMother.getString() + "|" + jsyFacilityAsha.getString() + "|" + jsyFacilityAnm.getString();
@@ -650,8 +653,7 @@
String childImm4FormData = vitA1Num.getString() + "|" + vitA5Num.getString() + "|" + vitA9Num.getString() + "|" + caseMeaslesNum.getString() + "|" + caseDiarrhNum.getString() + "|" + caseMalariaNum.getString();
String healthFacilityFormData = vhndNum.getString() + "|" + opdNum.getString() + "|" + hbTestsNum.getString() + "|" + anaemicOpdNum.getString() + "|";
- System.out.println(monthData + "$" + ancFormData + "|" + deliveriesFormData + "|" + pregOutFormData + "|" + familyPlanFormData + "|" + childImm1FormData + "|" + childImm2FormData + "|" + childImm3FormData + "|" + childImm4FormData + "|" +
- healthFacilityFormData);
+ //System.out.println(monthData + "$" + ancFormData + "|" + deliveriesFormData + "|" + pregOutFormData + "|" + familyPlanFormData + "|" + childImm1FormData + "|" + childImm2FormData + "|" + childImm3FormData + "|" + childImm4FormData + "|" + healthFacilityFormData);
final String fullData = monthData + "$" + ancFormData + "|" + deliveriesFormData + "|" + pregOutFormData + "|" + familyPlanFormData + "|" + childImm1FormData + "|" + childImm2FormData + "|" + childImm3FormData + "|" + childImm4FormData + "|" +
healthFacilityFormData;
@@ -661,7 +663,7 @@
public void run() {
try {
- System.out.println("Updating Records");
+ //System.out.println("Updating Records");
lastMsgStore.setRecord(10, monthData.getBytes(), 0, monthData.length());
//<editor-fold defaultstate="collapsed" desc=" ancForm to update RMS ">
@@ -768,7 +770,7 @@
lastMsgStore.setRecord(87, anaemicOpdNum.getString().getBytes(), 0, anaemicOpdNum.getString().length());
//</editor-fold>
- System.out.println("Records Updated Successfully");
+ //System.out.println("Records Updated Successfully");
lastMsgStore.setRecord(4, "true".getBytes(), 0, "true".getBytes().length);
savedMsg = true;
@@ -790,7 +792,7 @@
for (int i = 0; i < 3; i++) {
if (lastMsgStore.getRecord(i + 1) != null) {
j++;
- System.out.println("Sending SMS to: " + new String(lastMsgStore.getRecord(i + 1)));
+ //System.out.println("Sending SMS to: " + new String(lastMsgStore.getRecord(i + 1)));
MessageConnection smsConn = (MessageConnection) Connector.open("sms://+91" + new String(lastMsgStore.getRecord(i + 1)));
TextMessage sms = (TextMessage) smsConn.newMessage(MessageConnection.TEXT_MESSAGE);
//byte[] compressedData = Compressor.compress(fullData.getBytes("UTF-8"));
@@ -2242,7 +2244,6 @@
} catch (RecordStoreException rsex) {
rsex.printStackTrace();
}
-
}
fullImmMaleNum = new TextField("Males (9-11 months) Fully Immunized (BCG+DPT123+OPV123+Measles)", str, 32, TextField.NUMERIC);//GEN-BEGIN:|103-getter|1|103-postInit
fullImmMaleNum.setLayout(ImageItem.LAYOUT_DEFAULT | Item.LAYOUT_2);//GEN-END:|103-getter|1|103-postInit
@@ -2269,7 +2270,6 @@
} catch (RecordStoreException rsex) {
rsex.printStackTrace();
}
-
}
fullImmFemNum = new TextField("Females (9-11 months) Fully Immunized (BCG+DPT123+OPV123+Measles)", str, 32, TextField.NUMERIC);//GEN-BEGIN:|104-getter|1|104-postInit
fullImmFemNum.setLayout(ImageItem.LAYOUT_DEFAULT | Item.LAYOUT_2);//GEN-END:|104-getter|1|104-postInit
@@ -3173,12 +3173,13 @@
sendPage.addCommand(getSendExitCmd());
sendPage.addCommand(getSendSettingsCmd());
sendPage.setCommandListener(this);//GEN-END:|167-getter|1|167-postInit
- try {
- Image missingImg = Image.createImage("org/hispindia/mobile/images/exclamation.png");
- Image completeImg = Image.createImage("org/hispindia/mobile/images/success.png");
- } catch (IOException ex) {
- ex.printStackTrace();
+
+ if (sendPage.size() > 1) {
+ sendPage.delete(sendPage.size() - 1);
}
+
+ sendPage.append(imgItem);
+
}//GEN-BEGIN:|167-getter|2|
return sendPage;
}
@@ -3232,7 +3233,7 @@
public void itemStateChanged(Item item) {
if (item == reportingChoice) {
- System.out.println("Checking....");
+ //System.out.println("Checking....");
if (reportingChoice.getSelectedIndex() == 0) {
monthPage.delete(1);
monthPage.append(monthChoice);
@@ -3392,9 +3393,9 @@
*/
public Command getSendExitCmd() {
if (sendExitCmd == null) {//GEN-END:|206-getter|0|206-preInit
- // write pre-init user code here
+ // write pre-init user code here
sendExitCmd = new Command("Exit", Command.EXIT, 0);//GEN-LINE:|206-getter|1|206-postInit
- // write post-init user code here
+ // write post-init user code here
}//GEN-BEGIN:|206-getter|2|
return sendExitCmd;
}
@@ -3407,11 +3408,11 @@
*/
public StringItem getSendMsgLabel() {
if (sendMsgLabel == null) {//GEN-END:|210-getter|0|210-preInit
- // write pre-init user code here
+ // write pre-init user code here
sendMsgLabel = new StringItem("Info:", "All Data Collection Complete. Press \"Send SMS\" to send information to server", Item.PLAIN);//GEN-BEGIN:|210-getter|1|210-postInit
sendMsgLabel.setLayout(ImageItem.LAYOUT_CENTER | Item.LAYOUT_TOP | Item.LAYOUT_BOTTOM | Item.LAYOUT_VCENTER | ImageItem.LAYOUT_NEWLINE_BEFORE | ImageItem.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_SHRINK | Item.LAYOUT_VSHRINK | Item.LAYOUT_EXPAND | Item.LAYOUT_VEXPAND | Item.LAYOUT_2);
sendMsgLabel.setFont(getFont());//GEN-END:|210-getter|1|210-postInit
- // write post-init user code here
+ // write post-init user code here
}//GEN-BEGIN:|210-getter|2|
return sendMsgLabel;
}
@@ -3424,9 +3425,9 @@
*/
public Font getFont() {
if (font == null) {//GEN-END:|211-getter|0|211-preInit
- // write pre-init user code here
+ // write pre-init user code here
font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM);//GEN-LINE:|211-getter|1|211-postInit
- // write post-init user code here
+ // write post-init user code here
}//GEN-BEGIN:|211-getter|2|
return font;
}
@@ -3439,7 +3440,7 @@
*/
public Image getQuestion() {
if (question == null) {//GEN-END:|213-getter|0|213-preInit
- // write pre-init user code here
+ // write pre-init user code here
try {//GEN-BEGIN:|213-getter|1|213-@xxxxxxx.IOException
question = Image.createImage("/org/hispindia/mobile/images/question.png");
} catch (java.io.IOException e) {//GEN-END:|213-getter|1|213-@xxxxxxx.IOException
@@ -3451,7 +3452,6 @@
}
//</editor-fold>//GEN-END:|213-getter|3|
-
//<editor-fold defaultstate="collapsed" desc=" Generated Getter: loadPage ">//GEN-BEGIN:|219-getter|0|219-preInit
/**
* Returns an initiliazed instance of loadPage component.
@@ -3520,20 +3520,20 @@
}
//</editor-fold>//GEN-END:|225-getter|2|
- //<editor-fold defaultstate="collapsed" desc=" Generated Getter: loadExitCmd ">//GEN-BEGIN:|227-getter|0|227-preInit
- /**
- * Returns an initiliazed instance of loadExitCmd component.
- * @return the initialized component instance
- */
- public Command getLoadExitCmd() {
- if (loadExitCmd == null) {//GEN-END:|227-getter|0|227-preInit
+ //<editor-fold defaultstate="collapsed" desc=" Generated Getter: loadExitCmd ">//GEN-BEGIN:|227-getter|0|227-preInit
+ /**
+ * Returns an initiliazed instance of loadExitCmd component.
+ * @return the initialized component instance
+ */
+ public Command getLoadExitCmd() {
+ if (loadExitCmd == null) {//GEN-END:|227-getter|0|227-preInit
// write pre-init user code here
- loadExitCmd = new Command("Exit", Command.EXIT, 0);//GEN-LINE:|227-getter|1|227-postInit
+ loadExitCmd = new Command("Exit", Command.EXIT, 0);//GEN-LINE:|227-getter|1|227-postInit
// write post-init user code here
- }//GEN-BEGIN:|227-getter|2|
- return loadExitCmd;
- }
- //</editor-fold>//GEN-END:|227-getter|2|
+ }//GEN-BEGIN:|227-getter|2|
+ return loadExitCmd;
+ }
+ //</editor-fold>//GEN-END:|227-getter|2|
//<editor-fold defaultstate="collapsed" desc=" Generated Getter: settingsPage ">//GEN-BEGIN:|233-getter|0|233-preInit
/**
@@ -3542,12 +3542,12 @@
*/
public Form getSettingsPage() {
if (settingsPage == null) {//GEN-END:|233-getter|0|233-preInit
- // write pre-init user code here
+ // write pre-init user code here
settingsPage = new Form("Settings", new Item[] { getPhone1Num(), getPhone2Num(), getPhone3Num() });//GEN-BEGIN:|233-getter|1|233-postInit
settingsPage.addCommand(getSettingsCmd());
settingsPage.addCommand(getSettingsBackCmd());
settingsPage.setCommandListener(this);//GEN-END:|233-getter|1|233-postInit
- // write post-init user code here
+ // write post-init user code here
}//GEN-BEGIN:|233-getter|2|
return settingsPage;
}
@@ -3560,7 +3560,7 @@
*/
public ChoiceGroup getReportingChoice() {
if (reportingChoice == null) {//GEN-END:|235-getter|0|235-preInit
- // write pre-init user code here
+ // write pre-init user code here
reportingChoice = new ChoiceGroup("Reporting Freq:", Choice.POPUP);//GEN-BEGIN:|235-getter|1|235-postInit
reportingChoice.append("Monthly", null);
reportingChoice.append("Weekly", null);
@@ -3582,9 +3582,9 @@
*/
public ImageItem getQuestionImage() {
if (questionImage == null) {//GEN-END:|241-getter|0|241-preInit
- // write pre-init user code here
+ // write pre-init user code here
questionImage = new ImageItem("", getQuestion(), ImageItem.LAYOUT_CENTER | Item.LAYOUT_2, "");//GEN-LINE:|241-getter|1|241-postInit
- // write post-init user code here
+ // write post-init user code here
}//GEN-BEGIN:|241-getter|2|
return questionImage;
}
@@ -3597,28 +3597,28 @@
*/
public Command getSettingsCmd() {
if (settingsCmd == null) {//GEN-END:|242-getter|0|242-preInit
- // write pre-init user code here
+ // write pre-init user code here
settingsCmd = new Command("Save", Command.OK, 0);//GEN-LINE:|242-getter|1|242-postInit
- // write post-init user code here
+ // write post-init user code here
}//GEN-BEGIN:|242-getter|2|
return settingsCmd;
}
//</editor-fold>//GEN-END:|242-getter|2|
- //<editor-fold defaultstate="collapsed" desc=" Generated Getter: settingsBackCmd ">//GEN-BEGIN:|245-getter|0|245-preInit
- /**
- * Returns an initiliazed instance of settingsBackCmd component.
- * @return the initialized component instance
- */
- public Command getSettingsBackCmd() {
- if (settingsBackCmd == null) {//GEN-END:|245-getter|0|245-preInit
- // write pre-init user code here
- settingsBackCmd = new Command("Back", Command.BACK, 0);//GEN-LINE:|245-getter|1|245-postInit
- // write post-init user code here
- }//GEN-BEGIN:|245-getter|2|
- return settingsBackCmd;
- }
- //</editor-fold>//GEN-END:|245-getter|2|
+ //<editor-fold defaultstate="collapsed" desc=" Generated Getter: settingsBackCmd ">//GEN-BEGIN:|245-getter|0|245-preInit
+ /**
+ * Returns an initiliazed instance of settingsBackCmd component.
+ * @return the initialized component instance
+ */
+ public Command getSettingsBackCmd() {
+ if (settingsBackCmd == null) {//GEN-END:|245-getter|0|245-preInit
+ // write pre-init user code here
+ settingsBackCmd = new Command("Back", Command.BACK, 0);//GEN-LINE:|245-getter|1|245-postInit
+ // write post-init user code here
+ }//GEN-BEGIN:|245-getter|2|
+ return settingsBackCmd;
+ }
+ //</editor-fold>//GEN-END:|245-getter|2|
//<editor-fold defaultstate="collapsed" desc=" Generated Getter: phone1Num ">//GEN-BEGIN:|248-getter|0|248-preInit
/**
@@ -3734,7 +3734,67 @@
}
//</editor-fold>//GEN-END:|258-getter|2|
-
+ private void getEmptyFields() {
+ String ancFormData = pregNum.getString() + "|" + firstTrimesterNum.getString() + "|" + jsyNum.getString() + "|" + threeAncNum.getString() + "|" + tt1Num.getString() + "|" + boosterNum.getString() + "|" + ifaTabletNum.getString() + "|" + hypertensionNum.getString() + "|" + anaemicAncNum.getString();
+ String deliveriesFormData = sbaHomeNum.getString() + "|" + nonSbaHomeNum.getString() + "|" + newbornsHomeNum.getString() + "|" + jsyHomeNum.getString() + "|" + facilityNum.getString() + "|" + earlyDischargeNum.getString() + "|" + jsyFacilityMother.getString() + "|" + jsyFacilityAsha.getString() + "|" + jsyFacilityAnm.getString();
+ String pregOutFormData = liveMaleNum.getString() + "|" + liveFemaleNum.getString() + "|" + stillNum.getString() + "|" + abortionsNum.getString() + "|" + weightedTotalNum.getString() + "|" + underWeightNum.getString() + "|" + breastFedNum.getString() + "|" + pnc48Num.getString() + "|" + pnc14daysNum.getString();
+ String familyPlanFormData = iudInsFacilityNum.getString() + "|" + iudRemFacilityNum.getString() + "|" + ocpDistNum.getString() + "|" + condomsNum.getString() + "|" + weeklyPillsNum.getString() + "|" + emerContraNum.getString() + "|" + compliMaleSterNum.getString() + "|" + compliFemSterNum.getString() + "|" + failMaleSterNum.getString() + "|" + failFemSterNum.getString() + "|" + deathMaleSterNum.getString() + "|" + deathFemSterNum.getString();
+ String childImm1FormData = bcgNum.getString() + "|" + dpt1Num.getString() + "|" + dpt2Num.getString() + "|" + dpt3Num.getString() + "|" + opv0Num.getString() + "|" + opv1Num.getString() + "|" + opv2Num.getString() + "|" + opv3Num.getString() + "|" + hepB1Num.getString() + "|" + hepB2Num.getString() + "|" + hepB3Num.getString() + "|" + measlesVacNum.getString() + "|" + fullImmMaleNum.getString() + "|" + fullImmFemNum.getString();
+ String childImm2FormData = dptBNum.getString() + "|" + opvBNum.getString() + "|" + mmrNum.getString() + "|" + fullImm2MaleNum.getString() + "|" + fullImm2FemNum.getString() + "|" + dt5Num.getString() + "|" + tt10Num.getString() + "|" + tt16Num.getString();
+ String childImm3FormData = aefiAbscessNum.getString() + "|" + aefiDeathsNum.getString() + "|" + aefiOthersNum.getString() + "|" + sessionPlannedNum.getString() + "|" + sessionHeldNum.getString() + "|" + sessionsAshaNum.getString();
+ String childImm4FormData = vitA1Num.getString() + "|" + vitA5Num.getString() + "|" + vitA9Num.getString() + "|" + caseMeaslesNum.getString() + "|" + caseDiarrhNum.getString() + "|" + caseMalariaNum.getString();
+ String healthFacilityFormData = vhndNum.getString() + "|" + opdNum.getString() + "|" + hbTestsNum.getString() + "|" + anaemicOpdNum.getString() + "|";
+
+ String fullStr = ancFormData + "|" + deliveriesFormData + "|" + pregOutFormData + "|" + familyPlanFormData + "|" + childImm1FormData + "|" + childImm2FormData + "|" + childImm3FormData + "|" + childImm4FormData + "|" + healthFacilityFormData;
+
+ String[] allContent = split(fullStr);
+ int j = 0;
+ for (int i = 0; i < 77; i++) {
+ if (allContent[i].equals("")) {
+ j++;
+ }
+ }
+ //System.out.println("Total Blank Fields = " + j);
+ try {
+ if (j != 0) {
+ Image missingImg = Image.createImage("/org/hispindia/mobile/images/exclamation.png");
+ imgItem.setImage(missingImg);
+ imgItem.setLabel(j + " fields are not filled. Please verify...");
+ imgItem.setLayout(ImageItem.LAYOUT_DEFAULT);
+ } else {
+ Image completeImg = Image.createImage("/org/hispindia/mobile/images/success.png");
+ imgItem.setImage(completeImg);
+ imgItem.setLabel("All fields are filled");
+ imgItem.setLayout(ImageItem.LAYOUT_DEFAULT);
+ }
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private String[] split(String original) {
+ Vector nodes = new Vector();
+ String separator = "|";
+
+ // Parse nodes into vector
+ int index = original.indexOf(separator);
+ while (index >= 0) {
+ nodes.addElement(original.substring(0, index));
+ original = original.substring(index + separator.length());
+ index = original.indexOf(separator);
+ }
+ // Get the last node
+ nodes.addElement(original);
+
+ // Create splitted string array
+ String[] result = new String[nodes.size()];
+ if (nodes.size() > 0) {
+ for (int loop = 0; loop < nodes.size(); loop++) {
+ result[loop] = (String) nodes.elementAt(loop);
+ }
+ }
+ return result;
+ }
/**
* Returns a display instance.
@@ -3751,7 +3811,6 @@
switchDisplayable(null, null);
destroyApp(true);
notifyDestroyed();
-
}
/**
@@ -3764,10 +3823,7 @@
} else {
initialize();
startMIDlet();
-
}
-
-
midletPaused = false;
}
@@ -3784,4 +3840,4 @@
*/
public void destroyApp(boolean unconditional) {
}
-}
+}
\ No newline at end of file
=== modified file 'local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.vmd'
--- local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.vmd 2009-03-09 05:48:42 +0000
+++ local/in/DHISMIDP/src/org/hispindia/mobile/ANMApp.vmd 2009-03-10 14:12:43 +0000
@@ -1368,20 +1368,20 @@
</Component>
</Document>
<FlowScene version="1">
- <Node componentID="66" descriptorID="componentNode66" x="338" y="326"/>
- <Node componentID="156" descriptorID="componentNode156" x="634" y="345"/>
- <Node componentID="178" descriptorID="componentNode178" x="-10" y="283"/>
- <Node componentID="142" descriptorID="componentNode142" x="625" y="222"/>
- <Node componentID="110" descriptorID="componentNode110" x="354" y="109"/>
- <Node componentID="88" descriptorID="componentNode88" x="342" y="221"/>
+ <Node componentID="44" descriptorID="componentNode44" x="390" y="460"/>
<Node componentID="26" descriptorID="componentNode26" x="-15" y="508"/>
- <Node componentID="233" descriptorID="componentNode233" x="176" y="162"/>
<Node componentID="202" descriptorID="componentNode202" x="202" y="36"/>
+ <Node componentID="167" descriptorID="componentNode167" x="661" y="476"/>
+ <Node componentID="110" descriptorID="componentNode110" x="354" y="109"/>
<Node componentID="219" descriptorID="componentNode219" x="7" y="147"/>
- <Node componentID="14" descriptorID="componentNode14" x="-1" y="397"/>
- <Node componentID="167" descriptorID="componentNode167" x="661" y="476"/>
+ <Node componentID="66" descriptorID="componentNode66" x="338" y="326"/>
<Node componentID="2" descriptorID="componentNode2" x="-10" y="17"/>
+ <Node componentID="233" descriptorID="componentNode233" x="176" y="162"/>
+ <Node componentID="178" descriptorID="componentNode178" x="-10" y="283"/>
+ <Node componentID="88" descriptorID="componentNode88" x="342" y="221"/>
+ <Node componentID="142" descriptorID="componentNode142" x="625" y="222"/>
<Node componentID="127" descriptorID="componentNode127" x="628" y="74"/>
- <Node componentID="44" descriptorID="componentNode44" x="390" y="460"/>
+ <Node componentID="14" descriptorID="componentNode14" x="-1" y="397"/>
+ <Node componentID="156" descriptorID="componentNode156" x="634" y="345"/>
</FlowScene>
</VisualDesign>
--
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription.