package ch.elexis.core.ui.propertypage;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.eclipse.ui.dialogs.PropertyPage;
import ch.elexis.data.PersistentObject;
public class ExtInfoPropertyPage extends PropertyPage implements IWorkbenchPropertyPage {
private PersistentObject po;
@Override
protected Control createContents(Composite parent){
noDefaultAndApplyButton();
init();
Composite comp = new Composite(parent, SWT.None);
comp.setLayout(new GridLayout(2, false));
Label header = new Label(comp, SWT.None);
header.setText("Definierte Felder in ExtInfo:");
header.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false, 2, 1));
Map<Object, Object> extinfo = null;
try {
extinfo = po.getMap(PersistentObject.FLD_EXTINFO);
} catch (Exception e) {
// we ignore any exception here, as it might be coming
// from a missing ExtInfo (like in Leistunbsblock) or
// something else
}
if (extinfo == null || extinfo.size() == 0) {
Label lab = new Label(comp, SWT.None);
lab.setText("Keine.");
lab.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
return comp;
}
Set<Entry<Object, Object>> eis = extinfo.entrySet();
for (Iterator<Entry<Object, Object>> iterator = eis.iterator(); iterator.hasNext();) {
Entry e = (Entry) iterator.next();
Label lab = new Label(comp, SWT.None);
lab.setText(e.getKey().toString());
lab.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
Text txt = new Text(comp, SWT.None);
txt.setText(e.getValue().toString());
txt.setEditable(false);
txt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
}
return comp;
}
private void init(){
IAdaptable adapt = getElement();
po = (PersistentObject) adapt.getAdapter(PersistentObject.class);
}
}