package at.medevit.elexis.cobasmira.ui;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ColumnPixelData;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.part.ViewPart;
import at.medevit.elexis.cobasmira.connection.CobasMiraConnection;
import at.medevit.elexis.cobasmira.model.CobasMiraLog;
import at.medevit.elexis.cobasmira.model.CobasMiraMapping;
import at.medevit.elexis.cobasmira.model.CobasMiraMessage;
import ch.elexis.data.Anwender;
public class DeviceView extends ViewPart {
private CobasMiraLog log = CobasMiraLog.getInstance();
private DataBindingContext m_bindingContext;
private CobasMiraMessage message;
private Table tableCobasMiraLog;
private Table tableCobasMiraMapping;
private TableViewer tableViewer;
private TableColumn tableZeit;
private CobasMiraConnection conn = CobasMiraConnection.getInstance();
private Button btnActive;
public DeviceView(){
// TODO Auto-generated constructor stub
}
@Override
public void createPartControl(Composite parent){
parent.setLayout(new GridLayout(1, true));
Label lblCobasMiraLog = new Label(parent, SWT.NONE);
lblCobasMiraLog.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 9, 1));
lblCobasMiraLog.setText("Nachrichten Log");
/// --- Log Table
Composite logTableComposite = new Composite(parent, SWT.NONE);
logTableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 9, 1));
TableColumnLayout tableColumnLayout = new TableColumnLayout();
logTableComposite.setLayout(tableColumnLayout);
tableViewer = new TableViewer(logTableComposite, SWT.BORDER | SWT.FULL_SELECTION);
tableCobasMiraLog = tableViewer.getTable();
tableCobasMiraLog.setLinesVisible(true);
tableCobasMiraLog.setHeaderVisible(true);
TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
tableZeit = tableViewerColumn.getColumn();
tableZeit.setText(Messages.getString("UI.dateTime"));
tableColumnLayout.setColumnData(tableZeit, new ColumnPixelData(120));
TableViewerColumn tableViewerColumn_1 = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnTyp = tableViewerColumn_1.getColumn();
tblclmnTyp.setText(Messages.getString("UI.type"));
tableColumnLayout.setColumnData(tblclmnTyp, new ColumnPixelData(100));
TableViewerColumn tableViewerColumn_2 = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnLogeintrag = tableViewerColumn_2.getColumn();
tblclmnLogeintrag.setText(Messages.getString("UI.description"));
tableColumnLayout.setColumnData(tblclmnLogeintrag, new ColumnWeightData(50, 200));
TableViewerColumn tableViewerColumn_3 = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnElexisstatus = tableViewerColumn_3.getColumn();
tblclmnElexisstatus.setText(Messages.getString("UI.elexis-state"));
tableColumnLayout.setColumnData(tblclmnElexisstatus, new ColumnWeightData(10, 100));
tableViewer.setComparator(new CobasMiraLogTableSorter());
tableViewer.setContentProvider(new CobasMiraLogContentProvider(tableViewer));
tableViewer.setLabelProvider(new CobasMiraLogLabelProvider());
tableViewer.setInput(log.getMessageList());
/// --- End of Log Table
Label lblMappingEintrge = new Label(parent, SWT.NONE);
lblMappingEintrge.setText("Mapping Einträge");
// NEEDED in 2.1
//TODO: Remove afterwards
ch.elexis.data.Query<Anwender> qbe = new ch.elexis.data.Query<Anwender>(Anwender.class);
//comboViewer.setInput(Anwender.getAll().toArray());
//
TableViewer tableViewerCMM = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION);
tableCobasMiraMapping = tableViewerCMM.getTable();
tableCobasMiraMapping.setLinesVisible(true);
tableCobasMiraMapping.setHeaderVisible(true);
GridData gd_tableCobasMiraMapping = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 4);
gd_tableCobasMiraMapping.heightHint = 100;
tableCobasMiraMapping.setLayoutData(gd_tableCobasMiraMapping);
TableViewerColumn tableViewerColumnTestkrzel =
new TableViewerColumn(tableViewerCMM, SWT.NONE);
TableColumn tblclmnCobasMiraTestkrzel = tableViewerColumnTestkrzel.getColumn();
tblclmnCobasMiraTestkrzel.setWidth(100);
tblclmnCobasMiraTestkrzel.setText("CM Testname");
TableViewerColumn tableViewerColumnRefLaboritem =
new TableViewerColumn(tableViewerCMM, SWT.NONE);
TableColumn tblclmnReferenziertesLaboritem = tableViewerColumnRefLaboritem.getColumn();
tblclmnReferenziertesLaboritem.setWidth(111);
tblclmnReferenziertesLaboritem.setText("Ref. Laborwert");
TableViewerColumn tableViewerColumnNoKommastellen =
new TableViewerColumn(tableViewerCMM, SWT.NONE);
TableColumn tblclmnNoKommastellen = tableViewerColumnNoKommastellen.getColumn();
tblclmnNoKommastellen
.setToolTipText(Messages.getString("DeviceView.tblclmnNoKommastellen.toolTipText")); //$NON-NLS-1$
tblclmnNoKommastellen.setWidth(70);
tblclmnNoKommastellen.setText(Messages.getString("DeviceView.tblclmnNoKommastellen.text")); //$NON-NLS-1$
TableViewerColumn tableViewerColumnReferenzM =
new TableViewerColumn(tableViewerCMM, SWT.NONE);
TableColumn tblclmnReferenzM = tableViewerColumnReferenzM.getColumn();
tblclmnReferenzM.setWidth(100);
tblclmnReferenzM.setText("Referenz M");
TableViewerColumn tableViewerColumnReferenzW =
new TableViewerColumn(tableViewerCMM, SWT.NONE);
TableColumn tblclmnReferenzW = tableViewerColumnReferenzW.getColumn();
tblclmnReferenzW.setWidth(100);
tblclmnReferenzW.setText("Referenz W");
tableViewerCMM.setContentProvider(new CobasMiraMappingContentProvider());
tableViewerCMM.setLabelProvider(new CobasMiraMappingLabelProvider());
tableViewerCMM.setInput(CobasMiraMapping.getCmmappings());
Composite compositeButtonContainer = new Composite(parent, SWT.NONE);
compositeButtonContainer.setLayout(new GridLayout(1, true));
compositeButtonContainer
.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
btnActive = new Button(compositeButtonContainer, SWT.TOGGLE);
btnActive.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
boolean selection = btnActive.getSelection();
if (selection) {
conn.startReadingSerialInput();
} else {
conn.stopReadingSerialInput();
}
}
});
btnActive.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
btnActive.setText("Aktivieren");
btnActive.setSelection(conn.isActivated());
m_bindingContext = initDataBindings();
}
@Override
public void setFocus(){
tableViewer.getTable().setFocus();
}
protected DataBindingContext initDataBindings(){
DataBindingContext bindingContext = new DataBindingContext();
//
return bindingContext;
}
}