JSONObject deserialization cann call methods now
Currently the only supported parameter is String
This commit is contained in:
parent
abee1a8d36
commit
bdb7ae4992
@ -1,4 +1,4 @@
|
|||||||
#Sat, 01 Dec 2018 03:52:02 +0100
|
#Sat, 01 Dec 2018 09:27:21 +0100
|
||||||
annotation.processing.enabled=true
|
annotation.processing.enabled=true
|
||||||
annotation.processing.enabled.in.editor=false
|
annotation.processing.enabled.in.editor=false
|
||||||
annotation.processing.processors.list=
|
annotation.processing.processors.list=
|
||||||
|
@ -192,51 +192,16 @@ public class AssetEditorDialog extends EscDialog {
|
|||||||
|
|
||||||
}//GEN-LAST:event_cancelButtonActionPerformed
|
}//GEN-LAST:event_cancelButtonActionPerformed
|
||||||
|
|
||||||
static public boolean runDialog(Window parent, JSONObject o) {
|
static public boolean runDialog(Window parent, JSONObject o, JSONObject all) {
|
||||||
//JSONObject jo = new org.json.JSONObject(parent, new String[]{"getMyName"});
|
|
||||||
//System.out.printf("PARENT: %s", jo.toString());
|
|
||||||
// JSONObject.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AssetEditorDialog d = new AssetEditorDialog(parent);
|
AssetEditorDialog d = new AssetEditorDialog(parent);
|
||||||
Json.put(d.assetEditorPanel, o);
|
if (o!=null)
|
||||||
|
Json.put(d.assetEditorPanel, o);
|
||||||
|
|
||||||
|
d.setLocationRelativeTo(parent);
|
||||||
d.setVisible(true);
|
d.setVisible(true);
|
||||||
d.dispose();
|
d.dispose();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
d.assetEditorPanel.symField.setText("Hallo");
|
|
||||||
//d.assetEditorPanel.symField.setText("Herr");
|
|
||||||
JSONObject jo = Json.get(d.assetEditorPanel);
|
|
||||||
|
|
||||||
System.out.printf("Resulting JSONN %s\n", jo.toString(5));
|
|
||||||
|
|
||||||
//Class aClass = d.assetEditorPanel.getClass().getDeclaredFields();
|
|
||||||
|
|
||||||
Field[] fields = d.assetEditorPanel.getClass().getFields();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (Field f : fields) {
|
|
||||||
|
|
||||||
Export ex = f.getAnnotation(Export.class);
|
|
||||||
System.out.printf("Fieldname: %s\n",f.getName());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (ex == null){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.printf("EX: %s\n", ex.getClass().getName());
|
|
||||||
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,6 +126,11 @@ public class AssetEditorPanel extends javax.swing.JPanel {
|
|||||||
@Export
|
@Export
|
||||||
public String hallo = "hello";
|
public String hallo = "hello";
|
||||||
|
|
||||||
|
@Import("type")
|
||||||
|
public void putType(String type){
|
||||||
|
System.out.printf("Here we have a type: %s\n", type);
|
||||||
|
}
|
||||||
|
|
||||||
public JDialog dialog;
|
public JDialog dialog;
|
||||||
|
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ public class AssetListDialog extends EscDialog {
|
|||||||
private void doEdit() {
|
private void doEdit() {
|
||||||
JSONObject o = assetListPanel.getSelectedObject();
|
JSONObject o = assetListPanel.getSelectedObject();
|
||||||
System.out.printf("JON: %s",o.toString(4));
|
System.out.printf("JON: %s",o.toString(4));
|
||||||
AssetEditorDialog.runDialog(this, o);
|
AssetEditorDialog.runDialog(this, o,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
|
private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
|
||||||
|
@ -52,7 +52,7 @@ public class AssetListPanel extends javax.swing.JPanel implements GuiSelectionLi
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
json_set = new JSONObject(Globals.prefs.get("myassets", "{EUR:{name:Euro,decimals:8}}"));
|
json_set = new JSONObject(Globals.prefs.get("myassets", "{EUR:{name:Euro,decimals:8,type:Curreny}}"));
|
||||||
reload();
|
reload();
|
||||||
|
|
||||||
assetTable.setRowSelectionAllowed(true);
|
assetTable.setRowSelectionAllowed(true);
|
||||||
@ -102,7 +102,8 @@ public class AssetListPanel extends javax.swing.JPanel implements GuiSelectionLi
|
|||||||
m.addRow(new Object[]{
|
m.addRow(new Object[]{
|
||||||
o.opt("id"),
|
o.opt("id"),
|
||||||
symbol,
|
symbol,
|
||||||
o.opt("name")
|
o.opt("name"),
|
||||||
|
o.opt("type")
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import javax.swing.JTextField;
|
import javax.swing.JTextField;
|
||||||
@ -89,19 +91,18 @@ public class Json {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Inverse to get
|
* Inverse to get
|
||||||
|
*
|
||||||
* @param o Object
|
* @param o Object
|
||||||
* @param jo JSONObject
|
* @param jo JSONObject
|
||||||
*/
|
*/
|
||||||
public static void put(Object o, JSONObject jo) {
|
public static void put(Object o, JSONObject jo) {
|
||||||
Field[] fields = o.getClass().getFields();
|
Field[] fields = o.getClass().getFields();
|
||||||
for (Field f : fields) {
|
for (Field f : fields) {
|
||||||
|
|
||||||
System.out.printf("ANNOT: %s\n",f.getName());
|
|
||||||
|
|
||||||
Import imp = f.getAnnotation(Import.class);
|
Import imp = f.getAnnotation(Import.class);
|
||||||
if (imp == null) {
|
if (imp == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Class cls = f.getType();
|
Class cls = f.getType();
|
||||||
if (JTextField.class.isAssignableFrom(cls)) {
|
if (JTextField.class.isAssignableFrom(cls)) {
|
||||||
try {
|
try {
|
||||||
@ -111,6 +112,32 @@ public class Json {
|
|||||||
} catch (IllegalArgumentException | IllegalAccessException ex1) {
|
} catch (IllegalArgumentException | IllegalAccessException ex1) {
|
||||||
Logger.getLogger(Json.class.getName()).log(Level.SEVERE, null, ex1);
|
Logger.getLogger(Json.class.getName()).log(Level.SEVERE, null, ex1);
|
||||||
}
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Method[] methods = o.getClass().getMethods();
|
||||||
|
for (Method m : methods) {
|
||||||
|
Import imp = m.getAnnotation(Import.class);
|
||||||
|
if (imp == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m.getParameterCount() != 1) {
|
||||||
|
Logger.getLogger(Json.class.getName()).log(Level.SEVERE, null, "Wrong pcouunt");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = null == imp.value() ? m.getName() : imp.value();
|
||||||
|
|
||||||
|
Class p0 = m.getParameterTypes()[0];
|
||||||
|
if (String.class.isAssignableFrom(p0)){
|
||||||
|
String param = jo.optString(name, "");
|
||||||
|
try {
|
||||||
|
m.invoke(o, param);
|
||||||
|
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
|
||||||
|
Logger.getLogger(Json.class.getName()).log(Level.SEVERE, null, ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user