Salve a tutti
sto costruendo un applicazione dove vanno inseriti diversi campi di testo, combo e checklist
alla fine devo creare un file xml che contenga tutti i dati inseriti
fin qui tutto ok
essendo alcune centinaia i campi da compilare, ed essendo in fase ancora di costruzione, quindi potrebbero crescere, vorrei trovare il modo di "estrapolare" direttamente dall'app la coppia nome variabile e suo valore al fine di creare un xml del tipo
<variabili>
<variabile nome="var1"> valoreVariabile </variabile>
<variabile nome="var2"> valoreVariabile </variabile>
....
</variabili>
il testo generato mi serve per la mia applicazione per poter andare a rileggere i dati già inseriti in precedenza ma servono anche ad un altra applicazione non generata da me
per ora riesco solo ad estrapolare il valore ma non il nome della variabile
vorrei evitare di scriverle tutte a mano per evitare errori o dimenticanze
Note : uso SWT
quello che segue è un semplice esempio su cui sto effettuando le prove
package test;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
public class TestPerXml {
private static Text txt01;
private static Text txt02;
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
TabFolder tabFolder01 = new TabFolder(shell, SWT.NONE);
tabFolder01.setBounds(10, 10, 414, 241);
TabItem tabt01 = new TabItem(tabFolder01, SWT.NONE);
tabt01.setText("Item 01");
Composite composite01 = new Composite(tabFolder01, SWT.NONE);
tabt01.setControl(composite01);
Label lbl01 = new Label(composite01, SWT.NONE);
lbl01.setBounds(10, 10, 55, 15);
lbl01.setText("Label 01");
txt01 = new Text(composite01, SWT.BORDER);
txt01.setText("AAA");
txt01.setBounds(85, 7, 76, 21);
TabItem tbt02 = new TabItem(tabFolder01, SWT.NONE);
tbt02.setText("Item 02");
Composite composite02 = new Composite(tabFolder01, SWT.NONE);
tbt02.setControl(composite02);
Label lbl02 = new Label(composite02, SWT.NONE);
lbl02.setText("Label 2");
lbl02.setBounds(10, 13, 55, 15);
txt02 = new Text(composite02, SWT.BORDER);
txt02.setText("BBB");
txt02.setBounds(85, 10, 76, 21);
Control[] children = shell.getChildren();
Control[] tabfolder = tabFolder01.getChildren();
Control[] composit = composite01.getChildren();
System.out.println(children.length);
System.out.println(tabfolder.length);
System.out.println(composit.length);
Composite composit1 = composite01.getParent();
Composite composit2 = composite02.getParent();
System.out.println("composite Parent ");
System.out.println("composite Parent : " + composit1);
System.out.println("composite_2 Parent : " + composit2);
for (int i = 0; i < children.length; i++) {
Control child = children[i];
System.out.println("stampa children");
System.out.println(child);
System.out.println("-");
}
for (int i = 0; i < tabfolder.length; i++) {
Control tbf = tabfolder[i];
System.out.println("stampa tabfolder");
System.out.println(tbf.getClass().getSimpleName());
System.out.println("*");
}
for (int i = 0; i < composit.length; i++) {
Control comp = composit[i];
System.out.println("stampa composite");
System.out.println(comp.getClass().getSimpleName());
Text ppp;
if(comp.getClass().getSimpleName().equals("Text")) {
ppp = (Text)comp;
System.out.print("trovata variabile Text : ");
System.out.println(ppp.getText());
System.out.println(comp.getData("*"));
}
}
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}
grazie