package hoq.pages;
import hoq.wizard.HoQWizard;
public class HoQPageThreeGew extend s WizardPage {
private Composite container;
private Button btnAnfLad;
private Button btnAnfGewSpei;
private Table tblGewTab;
private HashMap<String, Integer> hasKundGew = new HashMap<String, Integer>();
private TableEditor tblEditor;
private Text txtKundenanforderung;
private Combo cmbEval;
private TableColumn tableColumn;
private TableItem[] items;
private ArrayList<String> arrstAnf;
public HoQPageThreeGew() {
super("wizardPage");
setTitle("Wizard Page title");
setDescription("Wizard Page description");
}
/**
* Create contents of the wizard.
*
* @param parent
*/
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NULL);
setControl(container);
container.setLayout(null);
btnAnfLad = new Button(container, SWT.NONE);
btnAnfLad.setBounds(45, 10, 200, 28);
btnAnfLad.setText("Anforderungen Laden");
tblGewTab = new Table(container, SWT.BORDER | SWT.V_SCROLL
| SWT.H_SCROLL);
tblGewTab.setHeaderVisible(true);
tblGewTab.setLinesVisible(true);
tblGewTab.setBounds(45, 45, 700, 300);
btnAnfGewSpei = new Button(container, SWT.NONE);
btnAnfGewSpei.setBounds(260, 10, 200, 28);
btnAnfGewSpei.setText("Gewichtung Speichern");
btnAnfGewSpei.setEnabled(false);
fillTable();
safeAnfEval();
setPageComplete(false);
}
private void fillTable() {
btnAnfLad.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
btnAnfLad.setEnabled(false);
btnAnfGewSpei.setEnabled(true);
// Liste mit allen Kundenanforderungen
arrstAnf = new ArrayList<String>();
arrstAnf = HoQWizard.hoqDatenstruktur.getKundenanforderungen();
// Zweispaltige Tabelle anlegen
tableColumn = new TableColumn(tblGewTab, SWT.NONE);
tableColumn.setWidth(500);
tableColumn.setText("Kundenanforderung");
tableColumn = new TableColumn(tblGewTab, SWT.NONE);
tableColumn.setWidth(100);
tableColumn.setText("Gewicht");
// Anzahl der Zeilen erstellen
for (int i = 0; i < arrstAnf.size(); i++) {
new TableItem(tblGewTab, SWT.NONE);
}
// Zeilen füllen
items = tblGewTab.getItems();
for (int lineCounter = 0; lineCounter < items.length; lineCounter++) {
tblEditor = new TableEditor(tblGewTab);
txtKundenanforderung = new Text(tblGewTab, SWT.NONE);
txtKundenanforderung.setText(arrstAnf.get(lineCounter));
tblEditor.grabHorizontal = true;
tblEditor.setEditor(txtKundenanforderung,
items[lineCounter], 0);
tblEditor = new TableEditor(tblGewTab);
cmbEval = new Combo(tblGewTab, SWT.NONE);
cmbEval.setText("");
for (int evaluation = 0; evaluation <= 10; evaluation++) {
cmbEval.add("" + evaluation);
}
tblEditor.grabHorizontal = true;
tblEditor.setEditor(cmbEval, items[lineCounter], 1);
}
}
});
}
/*
* ToDo: Liste in einer HashMap abspeichern. In dieser werden die
* Kundenanforderungen mit der Gewichtung gespeichert.
*/
private void safeAnfEval() {
btnAnfGewSpei.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
/*
* Zu Testzwecken, da ich dieses Problem noch nicht lösen kann
* wird eine fiktive Liste erstellt.
*/
for (int i = 0; i < arrstAnf.size(); i++) {
if (i == 0) {
hasKundGew.put(arrstAnf.get(i), 4);
} else if (i % 3 == 0) {
hasKundGew.put(arrstAnf.get(i), 2);
} else if (i % 2 == 0) {
hasKundGew.put(arrstAnf.get(i), 8);
} else {
hasKundGew.put(arrstAnf.get(i), 6);
}
}
HoQWizard.hoqDatenstruktur.setGewAnf(hasKundGew);
setPageComplete(true);
}
});
}
}