From 5ef9055d86f42777e8a841a9b306e2683c04069d Mon Sep 17 00:00:00 2001 From: rtrimana Date: Mon, 2 Oct 2017 11:05:05 -0700 Subject: [PATCH] Adding delete relation/communication feature --- iotjava/iotinstaller/IoTInstaller.java | 38 ++- .../.gradle/3.3/taskArtifacts/fileHashes.bin | Bin 688995 -> 689445 bytes .../3.3/taskArtifacts/fileSnapshots.bin | Bin 5908973 -> 6218161 bytes .../3.3/taskArtifacts/taskArtifacts.bin | Bin 212058 -> 212058 bytes .../3.3/taskArtifacts/taskArtifacts.lock | Bin 17 -> 17 bytes .../localClassSetAnalysis.bin | Bin 134862 -> 147073 bytes .../localClassSetAnalysis.lock | Bin 17 -> 17 bytes .../localJarClasspathSnapshot.lock | Bin 17 -> 17 bytes others/lede-gui/.idea/misc.xml | 2 +- others/lede-gui/.idea/workspace.xml | 292 ++++++++++-------- others/lede-gui/lede-gui.iml | 31 +- others/lede-gui/src/main/AndroidManifest.xml | 4 +- .../java/com/example/lede2/MainActivity.java | 6 +- ...ionActivity.java => RelationActivity.java} | 30 +- .../main/res/layout/activity_add_relation.xml | 92 ------ .../src/main/res/layout/activity_main.xml | 4 +- .../src/main/res/layout/activity_relation.xml | 169 ++++++++++ .../src/main/res/values/constants.xml | 3 +- .../lede-gui/src/main/res/values/strings.xml | 1 + 19 files changed, 424 insertions(+), 248 deletions(-) rename others/lede-gui/src/main/java/com/example/lede2/{AddRelationActivity.java => RelationActivity.java} (69%) delete mode 100644 others/lede-gui/src/main/res/layout/activity_add_relation.xml create mode 100644 others/lede-gui/src/main/res/layout/activity_relation.xml diff --git a/iotjava/iotinstaller/IoTInstaller.java b/iotjava/iotinstaller/IoTInstaller.java index a0c8f4d..7a93963 100644 --- a/iotjava/iotinstaller/IoTInstaller.java +++ b/iotjava/iotinstaller/IoTInstaller.java @@ -41,6 +41,7 @@ public final class IoTInstaller { private static final String STR_INSTALL_DEV_ADDRESS_CMD = "-install_dev_add"; private static final String STR_INSTALL_ZB_ADDRESS_CMD = "-install_zb_add"; private static final String STR_INSTALL_HOST_CMD = "-install_host"; + private static final String STR_DELETE_COMMUNICATION_CMD = "-delete_comm"; private static final String STR_DELETE_ENTITY_CMD = "-delete_ent"; private static final String STR_DELETE_ADDRESS_CMD = "-delete_add"; private static final String STR_DELETE_DEV_ADD_CMD = "-delete_dev_add"; @@ -334,6 +335,22 @@ public final class IoTInstaller { } } + + /** + * A method to delete relation/communication information from database + * + * @param strEntIDSource String for entity ID source + * @param strEntIDDest String for entity ID destination + * @return void + */ + public void deleteComm(String strEntIDSource, String strEntIDDest) { + + // Delete from table IoTMain + tbl.setTableName(STR_COMM_TABLE_NAME); + String strWhere = "ID_SOURCE='" + strEntIDSource + "' AND ID_DESTINATION='" + strEntIDDest + "';"; + tbl.deleteEntry(strWhere); + System.out.println("IoTInstaller: Removing relation/communication from table " + STR_COMM_TABLE_NAME); + } /** * A method to extract device/entity addresses information @@ -711,10 +728,11 @@ public final class IoTInstaller { System.out.println("IoTInstaller: 6) Install zigbee device address, e.g. java iotinstaller.IoTInstaller -install_zb_add "); System.out.println("IoTInstaller: 7) Install host, e.g. java iotinstaller.IoTInstaller -install_host "); System.out.println("IoTInstaller: 8) Delete entity, e.g. java iotinstaller.IoTInstaller -delete_ent "); - System.out.println("IoTInstaller: 9) Delete address, e.g. java iotinstaller.IoTInstaller -delete_add "); - System.out.println("IoTInstaller: 10) Delete device address, e.g. java iotinstaller.IoTInstaller -delete_dev_add "); - System.out.println("IoTInstaller: 11) Delete zigbee device address, e.g. java iotinstaller.IoTInstaller -delete_zb_add "); - System.out.println("IoTInstaller: 12) Delete host, e.g. java iotinstaller.IoTInstaller -delete_host "); + System.out.println("IoTInstaller: 9) Delete comm pattern, e.g. java iotinstaller.IoTInstaller -delete_comm "); + System.out.println("IoTInstaller: 10) Delete address, e.g. java iotinstaller.IoTInstaller -delete_add "); + System.out.println("IoTInstaller: 11) Delete device address, e.g. java iotinstaller.IoTInstaller -delete_dev_add "); + System.out.println("IoTInstaller: 12) Delete zigbee device address, e.g. java iotinstaller.IoTInstaller -delete_zb_add "); + System.out.println("IoTInstaller: 13) Delete host, e.g. java iotinstaller.IoTInstaller -delete_host "); System.out.println("IoTInstaller: Type 'java iotinstaller.IoTInstaller -help' to display this help."); System.out.println(); } @@ -736,10 +754,11 @@ public final class IoTInstaller { helpTxt = helpTxt + "IoTInstaller: 6) Install zigbee device address, e.g. java iotinstaller.IoTInstaller -install_zb_add \n"; helpTxt = helpTxt + "IoTInstaller: 7) Install host, e.g. java iotinstaller.IoTInstaller -install_host \n"; helpTxt = helpTxt + "IoTInstaller: 8) Delete entity, e.g. java iotinstaller.IoTInstaller -delete_ent \n"; - helpTxt = helpTxt + "IoTInstaller: 9) Delete address, e.g. java iotinstaller.IoTInstaller -delete_add \n"; - helpTxt = helpTxt + "IoTInstaller: 10) Delete device address, e.g. java iotinstaller.IoTInstaller -delete_dev_add \n"; - helpTxt = helpTxt + "IoTInstaller: 11) Delete zigbee device address, e.g. java iotinstaller.IoTInstaller -delete_zb_add \n"; - helpTxt = helpTxt + "IoTInstaller: 12) Delete host, e.g. java iotinstaller.IoTInstaller -delete_host \n"; + helpTxt = helpTxt + "IoTInstaller: 9) Delete comm pattern, e.g. java iotinstaller.IoTInstaller -delete_comm \n"; + helpTxt = helpTxt + "IoTInstaller: 10) Delete address, e.g. java iotinstaller.IoTInstaller -delete_add \n"; + helpTxt = helpTxt + "IoTInstaller: 11) Delete device address, e.g. java iotinstaller.IoTInstaller -delete_dev_add \n"; + helpTxt = helpTxt + "IoTInstaller: 12) Delete zigbee device address, e.g. java iotinstaller.IoTInstaller -delete_zb_add \n"; + helpTxt = helpTxt + "IoTInstaller: 13) Delete host, e.g. java iotinstaller.IoTInstaller -delete_host \n"; helpTxt = helpTxt + "IoTInstaller: Type 'java iotinstaller.IoTInstaller -help' to display this help.\n"; helpTxt = helpTxt + "\n"; @@ -788,6 +807,9 @@ public final class IoTInstaller { } else if (args[0].equals(STR_DELETE_ENTITY_CMD)) { iotinst.deleteEntity(args[1], args[2], args[3]); + } else if (args[0].equals(STR_DELETE_COMMUNICATION_CMD)) { + iotinst.deleteComm(args[1], args[2]); + } else if (args[0].equals(STR_DELETE_ADDRESS_CMD)) { iotinst.deleteAddress(STR_ADDRESS_TABLE_NAME, args[1], args[2]); diff --git a/others/lede-gui/.gradle/3.3/taskArtifacts/fileHashes.bin b/others/lede-gui/.gradle/3.3/taskArtifacts/fileHashes.bin index 466d723b14564fbacfb583c902b30d2cf99daace..b3625fe35f5d29ec76f5c8fd5f8f5db1d2f912f5 100644 GIT binary patch delta 17116 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 delta 16714 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 Qe)2ULX@77sew5??AL9H6CjbBd delta 31736 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 diff --git a/others/lede-gui/.gradle/3.3/taskArtifacts/taskArtifacts.bin b/others/lede-gui/.gradle/3.3/taskArtifacts/taskArtifacts.bin index 97f08493635b3b3929b7131d3137cf93701acb71..331ee732ecd3438bcc2ece1f799dcf67f95cdcb9 100644 GIT binary patch delta 8025 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 diff --git a/others/lede-gui/.gradle/3.3/taskArtifacts/taskArtifacts.lock b/others/lede-gui/.gradle/3.3/taskArtifacts/taskArtifacts.lock index b6450aa61fa13f2c34c584241f3f8ba238906615..bc35d02806478ed9a86d37ff7f2764ed15b4a51f 100644 GIT binary patch literal 17 VcmZS9`S3+oonw&&0~ow71OP331gZc4 literal 17 VcmZS9`S3+oonw&&0~p-q0RSxT1Tg>r diff --git a/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin b/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin index ecaaa6c4be8c67231e0e1e3e7c1a290d24cf3c71..7034f06166646fc9d6871004e6c85e5d440fcde5 100644 GIT binary patch delta 618 zcmX>%m!t77#{>~Zo{6IEybKJC4>}ka^xPO27?y5aSRg)GQbLoNiSJyqtHgF!3C7NE zg2oIC`m2C=5d(wHIiRx4$&77E(*u$j?Wg~G!067nc=EwGVYbwq#FEVX$&Hs=rYEdq zRGB>giQx1PQyKXuZ^%=c-q6cfJbm{gMgjD9DOM(H9ICf}SjYI0 zd3pyo6I!^!jGHVIC%Sz?B4auulg{nQ``>9zcMxUN!4eT4Cu&Wf^^#F-`r2=d-blLi OdnOA8%Ci8|%X$EZckv_u delta 39 vcmZqt%W-Zl#{>~Z?unx9j59ZG%n+Y=KxDF{geEiNgN|lbiS4cujGf;AC~ppg diff --git a/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock index f864e15f5786a2bd7efa3409edcafd2ff3e7a94d..3ede7c966997c72a1d9e739231ac4ac8408b3f28 100644 GIT binary patch literal 17 VcmZQ(3#oel#^*#K0~j!^0su2A1mpk! literal 17 VcmZQ(3#oel#^*#K0~jy`001)31d0Fv diff --git a/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock index bba075a6c9494d2a57eff0cd218b583ef214bd39..24c9e46c2f7325d538839301dc03eb955384cd4e 100644 GIT binary patch literal 17 VcmZR!;k^+3sJc0g0Sp+g001sA1d{*& literal 17 VcmZR!;k^+3sJc0g0Sp*t001rZ1Xln6 diff --git a/others/lede-gui/.idea/misc.xml b/others/lede-gui/.idea/misc.xml index 7e15d9d..b0a270f 100644 --- a/others/lede-gui/.idea/misc.xml +++ b/others/lede-gui/.idea/misc.xml @@ -27,7 +27,7 @@ - + diff --git a/others/lede-gui/.idea/workspace.xml b/others/lede-gui/.idea/workspace.xml index 49130a1..638cb81 100644 --- a/others/lede-gui/.idea/workspace.xml +++ b/others/lede-gui/.idea/workspace.xml @@ -47,69 +47,83 @@ - + - - - + + + + + - - - - - + + + + + + + + - - + + - - - + + + + + - - + + - - + + - - - - - + + + + + + + + + - - - - - - + + - - + + + + + + + + + @@ -1188,16 +1202,18 @@ @@ -1232,12 +1248,7 @@ - - - - - @@ -1404,6 +1415,11 @@ + + + + + @@ -2024,22 +2040,24 @@ - + - + - + + - + + @@ -2053,8 +2071,6 @@ - - @@ -2078,9 +2094,6 @@ - - - @@ -2148,16 +2161,6 @@ - - - - - - - - - - @@ -2183,17 +2186,6 @@ - - - - - - - - - - - @@ -2212,16 +2204,6 @@ - - - - - - - - - - @@ -2244,33 +2226,51 @@ - + - - + + + + + + + + + - + - - - - + + + + + + + + + + + - + - - - - + + + + + + + + @@ -2280,72 +2280,94 @@ - + - - + + - - - - + + + + + + + + - + - - - - - + + + + + + - + - + + - + - - + + - + + + + + + + + + - + - - + + - + + + + - - + + - - + + + + + + + - + - - + + @@ -2355,11 +2377,31 @@ - - + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/others/lede-gui/lede-gui.iml b/others/lede-gui/lede-gui.iml index 6d95a2e..dcd85f5 100644 --- a/others/lede-gui/lede-gui.iml +++ b/others/lede-gui/lede-gui.iml @@ -62,13 +62,6 @@ - - - - - - - @@ -76,14 +69,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/others/lede-gui/src/main/AndroidManifest.xml b/others/lede-gui/src/main/AndroidManifest.xml index 57ca44d..c51ae23 100644 --- a/others/lede-gui/src/main/AndroidManifest.xml +++ b/others/lede-gui/src/main/AndroidManifest.xml @@ -30,8 +30,8 @@ android:label="@string/title_activity_delete_device" android:theme="@style/AppTheme.NoActionBar" /> diff --git a/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java b/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java index 7374bf1..d5dc4a5 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java +++ b/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java @@ -43,6 +43,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe protected static String DEF_INSTALL_ADDRESS_CMD; protected static String DEF_DELETE_ADDRESS_CMD; protected static String DEF_INSTALL_RELATION_CMD; + protected static String DEF_DELETE_RELATION_CMD; @Override protected void onCreate(Bundle savedInstanceState) { @@ -54,7 +55,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe insertDBButton = (Button) findViewById(R.id.insert_db); deleteDBButton = (Button) findViewById(R.id.delete_db); configButton = (Button) findViewById(R.id.config); - relationButton = (Button) findViewById(R.id.add_comm); + relationButton = (Button) findViewById(R.id.add_del_comm); ssid = (TextView)findViewById(R.id.device_subtype); registerButton.setOnClickListener(this); @@ -85,6 +86,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe DEF_INSTALL_ADDRESS_CMD = context.getResources().getString(R.string.install_address_cmd); DEF_DELETE_ADDRESS_CMD = context.getResources().getString(R.string.delete_address_cmd); DEF_INSTALL_RELATION_CMD = context.getResources().getString(R.string.add_comm_cmd); + DEF_DELETE_RELATION_CMD = context.getResources().getString(R.string.delete_comm_cmd); ssid.setText(DEF_RSSID); } @@ -117,7 +119,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe startActivity(new Intent(this, DeleteDeviceActivity.class)); } else if (v == relationButton) { Log.d("CLICKING", "Clicking on add communication!"); - startActivity(new Intent(this, AddRelationActivity.class)); + startActivity(new Intent(this, RelationActivity.class)); } } } diff --git a/others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java b/others/lede-gui/src/main/java/com/example/lede2/RelationActivity.java similarity index 69% rename from others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java rename to others/lede-gui/src/main/java/com/example/lede2/RelationActivity.java index da54025..a87b490 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java +++ b/others/lede-gui/src/main/java/com/example/lede2/RelationActivity.java @@ -9,27 +9,35 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; -import android.widget.TextView; import java.io.IOException; import java.io.InputStream; -public class AddRelationActivity extends AppCompatActivity implements View.OnClickListener,View.OnFocusChangeListener { +public class RelationActivity extends AppCompatActivity implements View.OnClickListener,View.OnFocusChangeListener { - Button doneButton; - TextView databaseInfo; + Button addButton; + Button deleteButton; + EditText databaseInfo; + EditText idSource; + EditText idDestination; private SSH_MySQL ssh;//Connection object between Android & Host @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_add_relation); + setContentView(R.layout.activity_relation); - doneButton = (Button) findViewById(R.id.doneButton); + addButton = (Button) findViewById(R.id.addButton); + deleteButton = (Button) findViewById(R.id.delButton); databaseInfo = (EditText)findViewById(R.id.textInfoComm); + idSource = (EditText)findViewById(R.id.id_source); + idDestination = (EditText)findViewById(R.id.id_destination); - doneButton.setOnClickListener(this); + addButton.setOnClickListener(this); + deleteButton.setOnClickListener(this); databaseInfo.setOnFocusChangeListener(this); + idSource.setOnFocusChangeListener(this); + idDestination.setOnFocusChangeListener(this); ssh = new SSH_MySQL(); // Set config text from file for device try { @@ -50,7 +58,7 @@ public class AddRelationActivity extends AppCompatActivity implements View.OnCli @Override public void onClick(View v) { - if(v == doneButton){ + if(v == addButton){ // 1) Create a new file and insert the configuration // 2) Run iotinstaller code for communication/relation installation // 3) Remove the existing config file @@ -60,6 +68,12 @@ public class AddRelationActivity extends AppCompatActivity implements View.OnCli "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE); finish(); } + if(v == deleteButton){ + // Delete a communication/relation entry + ssh.execute(MainActivity.DEF_DELETE_RELATION_CMD + " " + idSource.getText().toString() + + " " + idDestination.getText().toString()); + finish(); + } } @Override diff --git a/others/lede-gui/src/main/res/layout/activity_add_relation.xml b/others/lede-gui/src/main/res/layout/activity_add_relation.xml deleted file mode 100644 index 8454deb..0000000 --- a/others/lede-gui/src/main/res/layout/activity_add_relation.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - -