Example usage for org.eclipse.jface.viewers TableViewer TableViewer

List of usage examples for org.eclipse.jface.viewers TableViewer TableViewer

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TableViewer TableViewer.

Prototype

public TableViewer(Composite parent, int style) 

Source Link

Document

Creates a table viewer on a newly-created table control under the given parent.

Usage

From source file:at.rc.tacos.client.view.admin.PhoneAdminView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it.//from  www.  j  a  v  a 2 s  . com
 */
@Override
public void createPartControl(final Composite parent) {
    String authorization = SessionManager.getInstance().getLoginInformation().getAuthorization();
    // the scrolled form
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createScrolledForm(parent);
    form.setText("Liste der Mobiltelefone");
    if (!authorization.equalsIgnoreCase("Administrator"))
        form.setEnabled(false);
    toolkit.decorateFormHeading(form.getForm());
    GridLayout layout = new GridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    form.getBody().setLayout(layout);
    form.getBody().setLayoutData(new GridData(GridData.FILL_BOTH));

    viewer = new TableViewer(form.getBody(), SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTable().setLayout(new GridLayout());
    viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent dce) {
            // get the selected mobile phone
            ISelection selection = viewer.getSelection();
            Object obj = ((IStructuredSelection) selection).getFirstElement();
            MobilePhoneDetail phone = (MobilePhoneDetail) obj;
            // create the editor input and open
            MobilePhoneEditorInput input = new MobilePhoneEditorInput(phone, false);
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
            try {
                page.openEditor(input, MobilePhoneEditor.ID);
            } catch (PartInitException e) {
                Activator.getDefault().log("Failed to open the editor for the mobile phone " + phone,
                        IStatus.ERROR);
            }
        }
    });
    viewer.setContentProvider(new MobilePhoneContentProvider());
    viewer.setLabelProvider(new MobilePhoneLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getPhoneManager().toArray());
    getViewSite().setSelectionProvider(viewer);

    // add actions to the toolbar
    createToolBarActions();

    // set this table as a selection provider
    getViewSite().setSelectionProvider(viewer);
}

From source file:at.rc.tacos.client.view.admin.ServiceTypeAdminView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it.//ww w. java 2  s .  c o m
 */
@Override
public void createPartControl(final Composite parent) {
    String authorization = SessionManager.getInstance().getLoginInformation().getAuthorization();
    // the scrolled form
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createScrolledForm(parent);
    form.setText("Liste der Dienstverhltnisse");
    if (!authorization.equalsIgnoreCase("Administrator"))
        form.setEnabled(false);
    toolkit.decorateFormHeading(form.getForm());
    GridLayout layout = new GridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    form.getBody().setLayout(layout);
    form.getBody().setLayoutData(new GridData(GridData.FILL_BOTH));

    viewer = new TableViewer(form.getBody(), SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTable().setLayout(new GridLayout());
    viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent dce) {
            // get the selected service type
            ISelection selection = viewer.getSelection();
            Object obj = ((IStructuredSelection) selection).getFirstElement();
            ServiceType serviceType = (ServiceType) obj;
            // create the editor input and open
            ServiceTypeEditorInput input = new ServiceTypeEditorInput(serviceType, false);
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
            try {
                page.openEditor(input, ServiceTypeEditor.ID);
            } catch (PartInitException e) {
                Activator.getDefault().log("Failed to open the editor for the service type " + serviceType,
                        IStatus.ERROR);
            }
        }
    });
    viewer.setContentProvider(new ServiceTypeContentProvider());
    viewer.setLabelProvider(new ServiceTypeLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getServiceManager().toArray());
    getViewSite().setSelectionProvider(viewer);

    // add actions to the toolbar
    createToolBarActions();

    // set this table as a selection provider
    getViewSite().setSelectionProvider(viewer);
}

From source file:at.rc.tacos.client.view.admin.StaffMemberAdminView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it./*from w w  w .j  a v a 2  s  .  c o  m*/
 */
@Override
public void createPartControl(final Composite parent) {
    // the scrolled form
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createScrolledForm(parent);
    form.setText("Liste der Mitarbeiter");
    toolkit.decorateFormHeading(form.getForm());
    GridLayout layout = new GridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    form.getBody().setLayout(layout);
    form.getBody().setLayoutData(new GridData(GridData.FILL_BOTH));

    viewer = new TableViewer(form.getBody(), SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTable().setLayout(new GridLayout());
    viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent dce) {
            ISelection selection = viewer.getSelection();
            Object obj = ((IStructuredSelection) selection).getFirstElement();
            StaffMember member = (StaffMember) obj;
            Login login = ModelFactory.getInstance().getLoginManager().getLoginByUsername(member.getUserName());
            // assert valid
            if (login == null) {
                Activator.getDefault().log("Failed to open the editor for the staff member " + member
                        + "\n The login object for the user is null", IStatus.ERROR);
                MessageDialog.openError(getSite().getShell(), "Fehler beim ndern von " + member.getUserName(),
                        "Der Mitarbeiter" + member.getFirstName() + " " + member.getLastName()
                                + " kann nicht editiert werden");
            }

            StaffMemberEditorInput input = new StaffMemberEditorInput(member, login, false);
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
            try {
                page.openEditor(input, StaffMemberEditor.ID);
            } catch (PartInitException e) {
                Activator.getDefault().log("Failed to open the editor for the staff member " + member,
                        IStatus.ERROR);
            }
        }
    });
    viewer.setContentProvider(new StaffMemberContentProvider());
    viewer.setLabelProvider(new StaffMemberLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getStaffManager().getStaffList());
    getViewSite().setSelectionProvider(viewer);

    // add actions to the toolbar
    createToolBarActions();

    // set this table as a selection provider
    getViewSite().setSelectionProvider(viewer);
}

From source file:at.rc.tacos.client.view.admin.VehicleAdminView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it.//from w  w w . j  a v a 2s. c  o  m
 */
@Override
public void createPartControl(final Composite parent) {
    String authorization = SessionManager.getInstance().getLoginInformation().getAuthorization();
    // the scrolled form
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createScrolledForm(parent);
    form.setText("Liste der Fahrzeuge");
    if (!authorization.equalsIgnoreCase("Administrator"))
        form.setEnabled(false);
    toolkit.decorateFormHeading(form.getForm());
    GridLayout layout = new GridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    form.getBody().setLayout(layout);
    form.getBody().setLayoutData(new GridData(GridData.FILL_BOTH));

    viewer = new TableViewer(form.getBody(), SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTable().setLayout(new GridLayout());
    viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent dce) {
            ISelection selection = viewer.getSelection();
            Object obj = ((IStructuredSelection) selection).getFirstElement();
            VehicleDetail vehicle = (VehicleDetail) obj;
            VehicleDetailEditorInput input = new VehicleDetailEditorInput(vehicle, false);
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
            try {
                page.openEditor(input, VehicleDetailEditor.ID);
            } catch (PartInitException e) {
                Activator.getDefault().log("Failed to open the editor for the vehicle " + vehicle,
                        IStatus.ERROR);
            }
        }
    });
    viewer.setContentProvider(new VehicleContentProvider());
    viewer.setLabelProvider(new VehicleLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getVehicleManager().getVehicleList());
    getViewSite().setSelectionProvider(viewer);

    // add actions to the toolbar
    createToolBarActions();

    // set this table as a selection provider
    getViewSite().setSelectionProvider(viewer);
}

From source file:at.rc.tacos.client.view.DialysisView.java

License:Open Source License

/**
 * Call back method to create the control and initialize them.
 * //from  w w  w.  j av  a  2 s .  co  m
 * @param parent
 *            the parent composite to add
 */
@Override
public void createPartControl(final Composite parent) {
    // Create the scrolled parent component
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createScrolledForm(parent);
    toolkit.decorateFormHeading(form.getForm());
    form.getBody().setLayout(new FillLayout());

    final Composite composite = form.getBody();

    viewer = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.setContentProvider(new DialysisTransportContentProvider());
    viewer.setLabelProvider(new DialysisTransportLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getDialyseManager());
    viewer.getTable().setLinesVisible(true);
    viewer.refresh();

    final Table table_2 = viewer.getTable();
    table_2.setLinesVisible(true);
    table_2.setHeaderVisible(true);

    final TableColumn lockColumn = new TableColumn(table_2, SWT.NONE);
    lockColumn.setToolTipText("Eintrag wird gerade bearbeitet");
    lockColumn.setWidth(24);
    lockColumn.setText("L");

    final TableColumn newColumnTableColumnStationDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnStationDialyse.setToolTipText("Zustndige Ortsstelle");
    newColumnTableColumnStationDialyse.setWidth(200);
    newColumnTableColumnStationDialyse.setText("OS");

    final TableColumn newColumnTableColumnAbfDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnAbfDialyse.setToolTipText("Geplante Abfahrt an Ortsstelle");
    newColumnTableColumnAbfDialyse.setWidth(68);
    newColumnTableColumnAbfDialyse.setText("Abf");

    final TableColumn newColumnTableColumnAnkDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnAnkDialyse.setToolTipText("Geplante Ankunft beim Patienten");
    newColumnTableColumnAnkDialyse.setWidth(68);
    newColumnTableColumnAnkDialyse.setText("Ank");

    final TableColumn newColumnTableColumnTerminDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnTerminDialyse.setToolTipText("Termin auf der Dialyse");
    newColumnTableColumnTerminDialyse.setWidth(68);
    newColumnTableColumnTerminDialyse.setText("Termin");

    final TableColumn newColumnTableColumnRTAbfahrtDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnRTAbfahrtDialyse.setToolTipText("Abfahrt an der Ortsstelle");
    newColumnTableColumnRTAbfahrtDialyse.setWidth(68);
    newColumnTableColumnRTAbfahrtDialyse.setText("RT Abfahrt");

    final TableColumn newColumnTableColumnAbholbereitDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnAbholbereitDialyse.setToolTipText("Patient ist mit Dialyse fertig, abholbereit im LKH");
    newColumnTableColumnAbholbereitDialyse.setWidth(68);
    newColumnTableColumnAbholbereitDialyse.setText("Abholbereit");

    final TableColumn newColumnTableColumnWohnortDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnWohnortDialyse.setWidth(250);
    newColumnTableColumnWohnortDialyse.setText("Wohnort");

    final TableColumn newColumnTableColumnNameDialyse = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnNameDialyse.setWidth(250);
    newColumnTableColumnNameDialyse.setText("Name");

    final TableColumn newColumnTableColumnDialyseort = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnDialyseort.setWidth(250);
    newColumnTableColumnDialyseort.setText("Dialyseort");

    final TableColumn newColumnTableColumnMontag = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnMontag.setData("newKey", null);
    newColumnTableColumnMontag.setWidth(30);
    newColumnTableColumnMontag.setText("Mo");

    final TableColumn newColumnTableColumnDienstag = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnDienstag.setWidth(30);
    newColumnTableColumnDienstag.setText("Di");

    final TableColumn newColumnTableColumnMittwoch = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnMittwoch.setWidth(30);
    newColumnTableColumnMittwoch.setText("Mi");

    final TableColumn newColumnTableColumnDonnerstag = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnDonnerstag.setWidth(30);
    newColumnTableColumnDonnerstag.setText("Do");

    final TableColumn newColumnTableColumnFreitag = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnFreitag.setWidth(30);
    newColumnTableColumnFreitag.setText("Fr");

    final TableColumn newColumnTableColumnSamstag = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnSamstag.setWidth(30);
    newColumnTableColumnSamstag.setText("Sa");

    final TableColumn newColumnTableColumnSonntag = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnSonntag.setWidth(30);
    newColumnTableColumnSonntag.setText("So");

    final TableColumn newColumnTableColumnTA = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnTA.setWidth(90);
    newColumnTableColumnTA.setText("TA");

    final TableColumn newColumnTableColumnStationaer = new TableColumn(table_2, SWT.NONE);
    newColumnTableColumnStationaer.setToolTipText("Patient wird derzeit nicht transportiert");
    newColumnTableColumnStationaer.setWidth(40);
    newColumnTableColumnStationaer.setText("Stat");

    viewer.getTable().addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {
            if (viewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                viewer.setSelection(new StructuredSelection());
            }
        }
    });

    /** make the columns sort able */
    Listener sortListener = new Listener() {

        public void handleEvent(Event e) {
            // determine new sort column and direction
            TableColumn sortColumn = viewer.getTable().getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = viewer.getTable().getSortDirection();
            // revert the sort order if the column is the same
            if (sortColumn == currentColumn) {
                if (dir == SWT.UP)
                    dir = SWT.DOWN;
                else
                    dir = SWT.UP;
            } else {
                viewer.getTable().setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            // sort the data based on column and direction
            String sortIdentifier = null;

            if (currentColumn == newColumnTableColumnStationDialyse)
                sortIdentifier = DialysisTransportSorter.RESP_STATION_SORTER;
            if (currentColumn == newColumnTableColumnAbfDialyse)
                sortIdentifier = DialysisTransportSorter.ABF_SORTER;
            if (currentColumn == newColumnTableColumnAnkDialyse)
                sortIdentifier = DialysisTransportSorter.AT_PATIENT_SORTER;
            if (currentColumn == newColumnTableColumnTerminDialyse)
                sortIdentifier = DialysisTransportSorter.TERM_SORTER;
            if (currentColumn == newColumnTableColumnWohnortDialyse)
                sortIdentifier = DialysisTransportSorter.TRANSPORT_FROM_SORTER;
            if (currentColumn == newColumnTableColumnNameDialyse)
                sortIdentifier = DialysisTransportSorter.PATIENT_SORTER;
            if (currentColumn == newColumnTableColumnDialyseort)
                sortIdentifier = DialysisTransportSorter.TRANSPORT_TO_SORTER;
            if (currentColumn == newColumnTableColumnRTAbfahrtDialyse)
                sortIdentifier = DialysisTransportSorter.RT_SORTER;
            if (currentColumn == newColumnTableColumnAbholbereitDialyse)
                sortIdentifier = DialysisTransportSorter.READY_SORTER;
            if (currentColumn == newColumnTableColumnTA)
                sortIdentifier = DialysisTransportSorter.TA_SORTER;
            // apply the filter
            viewer.getTable().setSortDirection(dir);
            viewer.setSorter(new DialysisTransportSorter(sortIdentifier, dir));
        }
    };

    // attach the listener
    newColumnTableColumnStationDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnAbfDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnAnkDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnTerminDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnWohnortDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnNameDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnRTAbfahrtDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnAbholbereitDialyse.addListener(SWT.Selection, sortListener);
    newColumnTableColumnTA.addListener(SWT.Selection, sortListener);
    newColumnTableColumnDialyseort.addListener(SWT.Selection, sortListener);

    makeActions();
    hookContextMenu();
    createToolBarActions();

    viewer.refresh();
}

From source file:at.rc.tacos.client.view.JournalView.java

License:Open Source License

/**
 * Callback method to create the control and initialize them.
 * // w  ww .  j  av a2 s  . c  om
 * @param parent
 *            the parent composite to add
 */
@Override
public void createPartControl(final Composite parent) {
    // Create the scrolled parent component
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createForm(parent);
    toolkit.decorateFormHeading(form);
    form.getBody().setLayout(new FillLayout());

    final Composite composite = form.getBody();

    viewer = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.setContentProvider(new JournalViewContentProvider());
    viewer.setLabelProvider(new JournalViewLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getTransportManager());
    viewer.getTable().setLinesVisible(true);

    // set the tooltip
    tooltip = new JournalViewTooltip(viewer.getControl());

    // show the tooltip when the selection has changed
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            TableItem[] selection = viewer.getTable().getSelection();
            if (selection != null && selection.length > 0) {
                Rectangle bounds = selection[0].getBounds();
                tooltip.show(new Point(bounds.x, bounds.y));
            }
        }
    });

    viewer.getTable().addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {
            if (viewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                viewer.setSelection(new StructuredSelection());
            }
        }
    });

    // sort the table by default
    viewer.setSorter(new TransportSorter(TransportSorter.TRANSPORT_FROM_SORTER, SWT.DOWN));

    // create the table for the transports
    final Table table = viewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    final TableColumn lockColumn = new TableColumn(table, SWT.NONE);
    lockColumn.setToolTipText("Eintrag wird gerade bearbeitet");
    lockColumn.setWidth(24);
    lockColumn.setText("L");

    final TableColumn realOSJournal = new TableColumn(table, SWT.NONE);
    realOSJournal.setToolTipText("Ortsstelle, die den Transport durchgefhrt hat");
    realOSJournal.setWidth(29);
    realOSJournal.setText("OS");

    final TableColumn columnTNrJournal = new TableColumn(table, SWT.NONE);
    columnTNrJournal.setMoveable(true);
    columnTNrJournal.setToolTipText("Transportnummer");
    columnTNrJournal.setWidth(70);
    columnTNrJournal.setText("TNr");

    final TableColumn columnPrioritaetJournal = new TableColumn(table, SWT.NONE);
    columnPrioritaetJournal.setToolTipText(
            "1 (NEF), 2 (Transport), 3 (Terminfahrt), 4 (Rcktransport), 5 (Heimtransport), 6 (Sonstiges), 7 (NEF extern)");
    columnPrioritaetJournal.setWidth(20);
    columnPrioritaetJournal.setText("Pr");

    final TableColumn columnTransportVonJournal = new TableColumn(table, SWT.NONE);
    columnTransportVonJournal.setMoveable(true);
    columnTransportVonJournal.setWidth(250);
    columnTransportVonJournal.setText("Transport von");

    final TableColumn columnPatientJournal = new TableColumn(table, SWT.NONE);
    columnPatientJournal.setMoveable(true);
    columnPatientJournal.setWidth(195);
    columnPatientJournal.setText("Patient");

    final TableColumn columnTransportNachJournal = new TableColumn(table, SWT.NONE);
    columnTransportNachJournal.setWidth(250);
    columnTransportNachJournal.setText("Transport nach");

    final TableColumn columnErkrVerlJournal = new TableColumn(table, SWT.NONE);
    columnErkrVerlJournal.setWidth(120);
    columnErkrVerlJournal.setText("Erkr/Verl");

    final TableColumn columnAEJournal = new TableColumn(table, SWT.NONE);
    columnAEJournal.setToolTipText("Auftrag erteilt");
    columnAEJournal.setWidth(43);
    columnAEJournal.setText("AE");

    final TableColumn columnS1Journal = new TableColumn(table, SWT.NONE);
    columnS1Journal.setToolTipText("Transportbeginn");
    columnS1Journal.setWidth(43);
    columnS1Journal.setText("S1");

    final TableColumn columnS2Journal = new TableColumn(table, SWT.NONE);
    columnS2Journal.setToolTipText("Bei Patient");
    columnS2Journal.setWidth(43);
    columnS2Journal.setText("S2");

    final TableColumn columnS3Journal = new TableColumn(table, SWT.NONE);
    columnS3Journal.setToolTipText("Abfahrt mit Patient");
    columnS3Journal.setWidth(43);
    columnS3Journal.setText("S3");

    final TableColumn columnS4Journal = new TableColumn(table, SWT.NONE);
    columnS4Journal.setToolTipText("Ankunft Zielort");
    columnS4Journal.setWidth(43);
    columnS4Journal.setText("S4");

    final TableColumn columnS5Journal = new TableColumn(table, SWT.NONE);
    columnS5Journal.setToolTipText("Ziel frei");
    columnS5Journal.setWidth(43);
    columnS5Journal.setText("S5");

    final TableColumn columnS6Journal = new TableColumn(table, SWT.NONE);
    columnS6Journal.setToolTipText("Fahrzeug eingerckt");
    columnS6Journal.setWidth(43);
    columnS6Journal.setText("S6");

    final TableColumn columnFzgJournal = new TableColumn(table, SWT.NONE);
    columnFzgJournal.setWidth(45);
    columnFzgJournal.setText("Fzg");

    final TableColumn columnFahrerJournal = new TableColumn(table, SWT.NONE);
    columnFahrerJournal.setWidth(120);
    columnFahrerJournal.setText("Fahrer");

    final TableColumn columnSaniIJournal = new TableColumn(table, SWT.NONE);
    columnSaniIJournal.setWidth(120);
    columnSaniIJournal.setText("Sanitter I");

    final TableColumn columnSaniIIJournal = new TableColumn(table, SWT.NONE);
    columnSaniIIJournal.setWidth(120);
    columnSaniIIJournal.setText("Sanitter II");

    // make the columns sort able
    Listener sortListener = new Listener() {

        public void handleEvent(Event e) {
            // determine new sort column and direction
            TableColumn sortColumn = viewer.getTable().getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = viewer.getTable().getSortDirection();
            // revert the sort order if the column is the same
            if (sortColumn == currentColumn) {
                if (dir == SWT.UP)
                    dir = SWT.DOWN;
                else
                    dir = SWT.UP;
            } else {
                viewer.getTable().setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            // sort the data based on column and direction
            String sortIdentifier = null;
            if (currentColumn == columnTNrJournal)
                sortIdentifier = TransportSorter.TNR_SORTER;
            if (currentColumn == columnPrioritaetJournal)
                sortIdentifier = TransportSorter.PRIORITY_SORTER;
            if (currentColumn == columnTransportVonJournal)
                sortIdentifier = TransportSorter.TRANSPORT_FROM_SORTER;
            if (currentColumn == columnPatientJournal)
                sortIdentifier = TransportSorter.PATIENT_SORTER;
            if (currentColumn == columnTransportNachJournal)
                sortIdentifier = TransportSorter.TRANSPORT_TO_SORTER;
            if (currentColumn == columnErkrVerlJournal)
                sortIdentifier = TransportSorter.KIND_OF_ILLNESS_SORTER;
            if (currentColumn == columnAEJournal)
                sortIdentifier = TransportSorter.AE_SORTER;
            if (currentColumn == columnS1Journal)
                sortIdentifier = TransportSorter.S1_SORTER;
            if (currentColumn == columnS2Journal)
                sortIdentifier = TransportSorter.S2_SORTER;
            if (currentColumn == columnS3Journal)
                sortIdentifier = TransportSorter.S3_SORTER;
            if (currentColumn == columnS4Journal)
                sortIdentifier = TransportSorter.S4_SORTER;
            if (currentColumn == columnS5Journal)
                sortIdentifier = TransportSorter.S5_SORTER;
            if (currentColumn == columnS6Journal)
                sortIdentifier = TransportSorter.S6_SORTER;
            if (currentColumn == columnFzgJournal)
                sortIdentifier = TransportSorter.VEHICLE_SORTER;
            if (currentColumn == columnFahrerJournal)
                sortIdentifier = TransportSorter.DRIVER_SORTER;
            if (currentColumn == columnSaniIJournal)
                sortIdentifier = TransportSorter.PARAMEDIC_I_SORTER;
            if (currentColumn == columnSaniIIJournal)
                sortIdentifier = TransportSorter.PARAMEDIC_II_SORTER;

            // apply the filter
            viewer.getTable().setSortDirection(dir);
            viewer.setSorter(new TransportSorter(sortIdentifier, dir));
        }
    };

    // attach the listener
    columnTNrJournal.addListener(SWT.Selection, sortListener);
    columnPrioritaetJournal.addListener(SWT.Selection, sortListener);
    columnTransportVonJournal.addListener(SWT.Selection, sortListener);
    columnPatientJournal.addListener(SWT.Selection, sortListener);
    columnTransportNachJournal.addListener(SWT.Selection, sortListener);
    columnErkrVerlJournal.addListener(SWT.Selection, sortListener);
    columnAEJournal.addListener(SWT.Selection, sortListener);
    columnS1Journal.addListener(SWT.Selection, sortListener);
    columnS2Journal.addListener(SWT.Selection, sortListener);
    columnS3Journal.addListener(SWT.Selection, sortListener);
    columnS4Journal.addListener(SWT.Selection, sortListener);
    columnS5Journal.addListener(SWT.Selection, sortListener);
    columnS6Journal.addListener(SWT.Selection, sortListener);
    columnFzgJournal.addListener(SWT.Selection, sortListener);
    columnSaniIJournal.addListener(SWT.Selection, sortListener);
    columnSaniIIJournal.addListener(SWT.Selection, sortListener);

    // create the actions
    makeActions();
    hookContextMenu();

    // show only transport with the status journal
    viewer.addFilter(new TransportStateViewFilter(PROGRAM_STATUS_JOURNAL));
    viewer.addFilter(new TransportDateFilter(Calendar.getInstance()));
    viewer.refresh();
}

From source file:at.rc.tacos.client.view.OutstandingTransportsView.java

License:Open Source License

/**
 * Call back method to create the control and initialize them.
 * /*w  w  w .  ja va 2  s . c  om*/
 * @param parent
 *            the parent composite to add
 */
@Override
public void createPartControl(final Composite parent) {
    // Create the scrolled parent component
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createForm(parent);
    form.setText("Offene Transporte");
    toolkit.decorateFormHeading(form);
    form.getBody().setLayout(new FillLayout());

    final Composite composite = form.getBody();

    viewerOffTrans = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewerOffTrans.setContentProvider(new OutstandingTransportsViewContentProvider());
    viewerOffTrans.setLabelProvider(new OutstandingTransportsViewLabelProvider());
    viewerOffTrans.setInput(ModelFactory.getInstance().getTransportManager());
    viewerOffTrans.getTable().setLinesVisible(true);

    viewerOffTrans.getTable().addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {
            if (viewerOffTrans.getTable().getItem(new Point(e.x, e.y)) == null) {
                viewerOffTrans.setSelection(new StructuredSelection());
            }
        }
    });

    viewerOffTrans.refresh();

    // make the actions for the context menu when selection has changed
    viewerOffTrans.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            this.makeActions();
            this.hookContextMenu();
        }

        /**
         * Creates the needed actions
         */
        public void makeActions() {
            forwardTransportAction = new ForwardTransportAction(viewerOffTrans);
            editTransportAction = new EditTransportAction(viewerOffTrans, "outstanding");
            cancelTransportAction = new CancelTransportAction(viewerOffTrans);
            copyTransportAction = new CopyTransportAction(viewerOffTrans);
            // get the list of all vehicle with the status ready for action
            List<VehicleDetail> readyVehicles = ModelFactory.getInstance().getVehicleManager()
                    .getReadyVehicleList();
            // loop and create the actions
            actionList.clear();
            for (VehicleDetail veh : readyVehicles) {
                AssignCarAction action = new AssignCarAction(viewerOffTrans, veh);
                actionList.add(action);
            }
        }

        /**
         * Creates the context menu
         */
        private void hookContextMenu() {
            MenuManager menuManager = new MenuManager("#OutstandingPopupMenu");
            menuManager.setRemoveAllWhenShown(true);
            menuManager.addMenuListener(new IMenuListener() {

                public void menuAboutToShow(IMenuManager manager) {
                    fillContextMenu(manager);
                }
            });
            Menu menu = menuManager.createContextMenu(viewerOffTrans.getControl());
            viewerOffTrans.getControl().setMenu(menu);
            // getSite().registerContextMenu(menuManager, viewerOffTrans);
        }

        /**
         * Fills the context menu with the actions
         */
        private void fillContextMenu(IMenuManager manager) {
            // get the selected object
            final Object firstSelectedObject = ((IStructuredSelection) viewerOffTrans.getSelection())
                    .getFirstElement();

            // cast to a RosterEntry
            Transport transport = (Transport) firstSelectedObject;

            if (transport == null)
                return;

            // submenu for the available vehicles
            MenuManager menuManagerSub = new MenuManager("Fahrzeug zuweisen");

            // add the actions
            manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));

            manager.add(menuManagerSub);

            // create a list of ready vehicles and disable the selection if
            // the transport is locked
            boolean locked = lockManager.containsLock(Transport.ID, transport.getTransportId());
            for (AssignCarAction ac : actionList) {
                menuManagerSub.add(ac);
                if (locked) {
                    ac.setEnabled(false);
                }
            }

            manager.add(new Separator());
            manager.add(editTransportAction);
            manager.add(new Separator());
            manager.add(cancelTransportAction);
            manager.add(forwardTransportAction);
            manager.add(new Separator());
            manager.add(copyTransportAction);

            // if locked
            if (locked) {
                copyTransportAction.setEnabled(false);
            } else
                copyTransportAction.setEnabled(true);
        }
    });

    // set the default sorter
    viewerOffTrans.setSorter(new TransportSorter(TransportSorter.PRIORITY_SORTER, SWT.UP));

    final Table tableOff = viewerOffTrans.getTable();
    tableOff.setLinesVisible(true);
    tableOff.setHeaderVisible(true);

    final TableColumn lockColumn = new TableColumn(tableOff, SWT.NONE);
    lockColumn.setToolTipText("Eintrag wird gerade bearbeitet");
    lockColumn.setWidth(24);
    lockColumn.setText("L");

    final TableColumn prioritaetOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    prioritaetOffeneTransporte.setToolTipText(
            "A (NEF), B (BD1), C (Transport), D (Rcktransport), E (Heimtransport), F (Sonstiges), E (NEF extern)");
    prioritaetOffeneTransporte.setWidth(26);
    prioritaetOffeneTransporte.setText("Pr");

    final TableColumn respOSOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    respOSOffeneTransporte.setToolTipText("Zustndige Ortsstelle");
    respOSOffeneTransporte.setWidth(30);
    respOSOffeneTransporte.setText("OS");

    final TableColumn abfOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    abfOffeneTransporte.setToolTipText("Abfahrt auf der Dienststelle");
    abfOffeneTransporte.setWidth(43);
    abfOffeneTransporte.setText("Abf");

    final TableColumn ankOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    ankOffeneTransporte.setToolTipText("Ankunft beim Patienten");
    ankOffeneTransporte.setWidth(43);
    ankOffeneTransporte.setText("Ank.");

    final TableColumn terminOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    terminOffeneTransporte.setToolTipText("Terminzeit am Zielort");
    terminOffeneTransporte.setWidth(43);
    terminOffeneTransporte.setText("Termin");

    final TableColumn transportVonOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    transportVonOffeneTransporte.setWidth(250);
    transportVonOffeneTransporte.setText("Transport von");

    final TableColumn patientOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    patientOffeneTransporte.setWidth(200);
    patientOffeneTransporte.setText("Patient");

    final TableColumn transportNachOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    transportNachOffeneTransporte.setWidth(250);
    transportNachOffeneTransporte.setText("Transport nach");

    final TableColumn aufgOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    aufgOffeneTransporte.setToolTipText("Zeit zu der der Transport aufgenommen wurde");
    aufgOffeneTransporte.setWidth(43);
    aufgOffeneTransporte.setText("Aufg");

    final TableColumn tOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    tOffeneTransporte.setToolTipText("Transportart");
    tOffeneTransporte.setWidth(22);
    tOffeneTransporte.setText("T");

    final TableColumn erkrankungVerletzungOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    erkrankungVerletzungOffeneTransporte.setWidth(150);
    erkrankungVerletzungOffeneTransporte.setText("Erkrankung/Verletzung");

    final TableColumn anmerkungOffeneTransporte = new TableColumn(tableOff, SWT.NONE);
    anmerkungOffeneTransporte.setWidth(542);
    anmerkungOffeneTransporte.setText("Anmerkung");

    // make the columns sortable
    Listener sortListener = new Listener() {

        public void handleEvent(Event e) {
            // determine new sort column and direction
            TableColumn sortColumn = viewerOffTrans.getTable().getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = viewerOffTrans.getTable().getSortDirection();
            // revert the sort order if the column is the same
            if (sortColumn == currentColumn) {
                if (dir == SWT.UP)
                    dir = SWT.DOWN;
                else
                    dir = SWT.UP;
            } else {
                viewerOffTrans.getTable().setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            // sort the data based on column and direction
            String sortIdentifier = null;
            if (currentColumn == prioritaetOffeneTransporte)
                sortIdentifier = TransportSorter.PRIORITY_SORTER;
            if (currentColumn == respOSOffeneTransporte)
                sortIdentifier = TransportSorter.RESP_STATION_SORTER;
            if (currentColumn == abfOffeneTransporte)
                sortIdentifier = TransportSorter.ABF_SORTER;
            if (currentColumn == ankOffeneTransporte)
                sortIdentifier = TransportSorter.AT_PATIENT_SORTER;
            if (currentColumn == terminOffeneTransporte)
                sortIdentifier = TransportSorter.TERM_SORTER;
            if (currentColumn == transportVonOffeneTransporte)
                sortIdentifier = TransportSorter.TRANSPORT_FROM_SORTER;
            if (currentColumn == patientOffeneTransporte)
                sortIdentifier = TransportSorter.PATIENT_SORTER;
            if (currentColumn == transportNachOffeneTransporte)
                sortIdentifier = TransportSorter.TRANSPORT_TO_SORTER;
            if (currentColumn == aufgOffeneTransporte)
                sortIdentifier = TransportSorter.AUFG_SORTER;
            if (currentColumn == tOffeneTransporte)
                sortIdentifier = TransportSorter.TA_SORTER;
            if (currentColumn == erkrankungVerletzungOffeneTransporte)
                sortIdentifier = TransportSorter.KIND_OF_ILLNESS_SORTER;
            if (currentColumn == anmerkungOffeneTransporte)
                sortIdentifier = TransportSorter.NOTES_SORTER;

            // apply the filter
            viewerOffTrans.getTable().setSortDirection(dir);
            viewerOffTrans.setSorter(new TransportSorter(sortIdentifier, dir));
        }
    };

    // attach the listener
    prioritaetOffeneTransporte.addListener(SWT.Selection, sortListener);
    respOSOffeneTransporte.addListener(SWT.Selection, sortListener);
    abfOffeneTransporte.addListener(SWT.Selection, sortListener);
    ankOffeneTransporte.addListener(SWT.Selection, sortListener);
    terminOffeneTransporte.addListener(SWT.Selection, sortListener);
    transportVonOffeneTransporte.addListener(SWT.Selection, sortListener);
    patientOffeneTransporte.addListener(SWT.Selection, sortListener);
    transportNachOffeneTransporte.addListener(SWT.Selection, sortListener);
    aufgOffeneTransporte.addListener(SWT.Selection, sortListener);
    tOffeneTransporte.addListener(SWT.Selection, sortListener);
    erkrankungVerletzungOffeneTransporte.addListener(SWT.Selection, sortListener);
    anmerkungOffeneTransporte.addListener(SWT.Selection, sortListener);

    viewerOffTrans.resetFilters();
    // apply the filter to show only outstanding transports
    viewerOffTrans.addFilter(new TransportStateViewFilter(PROGRAM_STATUS_OUTSTANDING));
    viewerOffTrans.refresh();
}

From source file:at.rc.tacos.client.view.PersonalView.java

License:Open Source License

/**
 * Callback method to create the control and initalize them.
 * //from   w  w w  .j  a va2  s.  c o m
 * @param parent
 *            the parent composite to add
 */
@Override
public void createPartControl(final Composite parent) {
    // Create the scrolled parent component
    toolkit = new FormToolkit(CustomColors.FORM_COLOR(parent.getDisplay()));
    form = toolkit.createForm(parent);
    toolkit.decorateFormHeading(form);
    form.getBody().setLayout(new FillLayout());

    final Composite composite = form.getBody();

    // tab folder
    tabFolder = new TabFolder(composite, SWT.NONE);
    tabFolder.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            // assert valid
            if (e.item.getData() == null)
                return;
            if (!(e.item.getData() instanceof Location))
                return;

            // remove all location filter
            for (ViewerFilter filter : viewer.getFilters()) {
                if (filter instanceof PersonalViewFilter)
                    viewer.removeFilter(filter);
            }

            // cast to a location and apply the new filter
            Location location = (Location) e.item.getData();
            viewer.addFilter(new PersonalViewFilter(location));
        }
    });

    viewer = new TableViewer(tabFolder, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.setContentProvider(new PersonalViewContentProvider());
    viewer.setLabelProvider(new PersonalViewLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getRosterEntryManager().toArray());
    viewer.getTable().setLinesVisible(true);

    // set the tooltip
    tooltip = new PersonalTooltip(viewer.getControl());
    // show the tooltip when the selection has changed
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            TableItem[] selection = viewer.getTable().getSelection();
            if (selection != null && selection.length > 0) {
                Rectangle bounds = selection[0].getBounds();
                tooltip.show(new Point(bounds.x, bounds.y));
            }
        }
    });

    viewer.getTable().addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {
            if (viewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                viewer.setSelection(new StructuredSelection());
            }
        }
    });
    // sort the table by default
    viewer.setSorter(new PersonalViewSorter(PersonalViewSorter.NAME_SORTER, SWT.UP));
    viewer.addFilter(new PersonalDateFilter(Calendar.getInstance()));

    // create the table for the roster entries
    final Table table = viewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    final TableColumn lockColumn = new TableColumn(table, SWT.NONE);
    lockColumn.setToolTipText("Eintrag wird gerade bearbeitet");
    lockColumn.setWidth(24);
    lockColumn.setText("L");

    final TableColumn columnStandby = new TableColumn(table, SWT.NONE);
    columnStandby.setToolTipText("Mitarbeiter auf Bereitschaft (Symbol, wenn der Fall)");
    columnStandby.setWidth(30);
    columnStandby.setText("B");

    final TableColumn columnNotes = new TableColumn(table, SWT.NONE);
    columnNotes.setToolTipText("Anmerkung (Symbol, wenn Anmerkung vorhanden)");
    columnNotes.setWidth(30);
    columnNotes.setText("A");

    final TableColumn columnStaffName = new TableColumn(table, SWT.NONE);
    columnStaffName.setWidth(130);
    columnStaffName.setText("Name");

    final TableColumn columnWorkTime = new TableColumn(table, SWT.NONE);
    columnWorkTime.setToolTipText("Dienst lt. Dienstplan");
    columnWorkTime.setWidth(120);
    columnWorkTime.setText("Dienst");

    final TableColumn columnCheckin = new TableColumn(table, SWT.NONE);
    columnCheckin.setToolTipText("Zeit der tatschlichen Anmeldung");
    columnCheckin.setWidth(70);
    columnCheckin.setText("Anm");

    final TableColumn columnCheckout = new TableColumn(table, SWT.NONE);
    columnCheckout.setToolTipText("Zeit der tatschlichen Abmeldung");
    columnCheckout.setWidth(70);
    columnCheckout.setText("Abm");

    final TableColumn columnService = new TableColumn(table, SWT.NONE);
    columnService.setToolTipText("Dienstverhltnis");
    columnService.setWidth(90);
    columnService.setText("DV");

    final TableColumn columnJob = new TableColumn(table, SWT.NONE);
    columnJob.setToolTipText("Verwendung");
    columnJob.setWidth(80);
    columnJob.setText("V");

    final TableColumn columnVehicle = new TableColumn(table, SWT.NONE);
    columnVehicle.setToolTipText("Fahrzeug, dem der Mitarbeiter zugewiesen ist");
    columnVehicle.setWidth(55);
    columnVehicle.setText("Fzg");

    // make the columns sortable
    Listener sortListener = new Listener() {

        public void handleEvent(Event e) {
            // determine new sort column and direction
            TableColumn sortColumn = viewer.getTable().getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = viewer.getTable().getSortDirection();
            // revert the sortorder if the column is the same
            if (sortColumn == currentColumn) {
                if (dir == SWT.UP)
                    dir = SWT.DOWN;
                else
                    dir = SWT.UP;
            } else {
                viewer.getTable().setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            // sort the data based on column and direction
            String sortIdentifier = null;
            if (currentColumn == columnStaffName)
                sortIdentifier = PersonalViewSorter.NAME_SORTER;
            if (currentColumn == columnWorkTime)
                sortIdentifier = PersonalViewSorter.WORKTIME_SORTER;
            if (currentColumn == columnCheckin)
                sortIdentifier = PersonalViewSorter.CHECKIN_SORTER;
            if (currentColumn == columnCheckout)
                sortIdentifier = PersonalViewSorter.CHECKOUT_SORTER;
            if (currentColumn == columnService)
                sortIdentifier = PersonalViewSorter.SERVICE_SORTER;
            if (currentColumn == columnJob)
                sortIdentifier = PersonalViewSorter.JOB_SORTER;
            // apply the filter
            viewer.getTable().setSortDirection(dir);
            viewer.setSorter(new PersonalViewSorter(sortIdentifier, dir));
        }
    };

    // attach the listener
    columnStaffName.addListener(SWT.Selection, sortListener);
    columnWorkTime.addListener(SWT.Selection, sortListener);
    columnCheckin.addListener(SWT.Selection, sortListener);
    columnCheckout.addListener(SWT.Selection, sortListener);
    columnService.addListener(SWT.Selection, sortListener);
    columnJob.addListener(SWT.Selection, sortListener);

    // create the actions
    makeActions();
    hookContextMenu();

    // load the data
    loadData();
}

From source file:at.rc.tacos.client.view.PrebookingView.java

License:Open Source License

/**
 * Creates and returns the table viewer.
 * /*from w w  w  .  java  2  s .co  m*/
 * @param parent
 *            the parent composite to insert
 * @return the created table
 */
private TableViewer createTableViewer(Composite parent) {
    final TableViewer viewer = new TableViewer(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.setContentProvider(new PrebookingViewContentProvider());
    viewer.setLabelProvider(new PrebookingViewLabelProvider());
    viewer.setInput(ModelFactory.getInstance().getTransportManager().toArray());
    viewer.getTable().setLinesVisible(true);

    viewer.getTable().addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {
            if (viewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                viewer.setSelection(new StructuredSelection());
            }
        }
    });

    final Table table = viewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    final TableColumn blockColumn = new TableColumn(table, SWT.NONE);
    blockColumn.setToolTipText("Eintrag wird gerade bearbeitet");
    blockColumn.setWidth(24);
    blockColumn.setText("L");

    final TableColumn bTableColumnOrtsstelle = new TableColumn(table, SWT.NONE);
    bTableColumnOrtsstelle.setWidth(30);
    bTableColumnOrtsstelle.setText("OS");

    final TableColumn bTableColumnAbfahrt = new TableColumn(table, SWT.NONE);
    bTableColumnAbfahrt.setToolTipText("Geplante Abfahrt an der Ortsstelle");
    bTableColumnAbfahrt.setWidth(43);
    bTableColumnAbfahrt.setText("Abf");

    final TableColumn bTableColumnAnkunft = new TableColumn(table, SWT.NONE);
    bTableColumnAnkunft.setToolTipText("Geplante Ankunft beim Patienten");
    bTableColumnAnkunft.setWidth(43);
    bTableColumnAnkunft.setText("Ank");

    final TableColumn bTableColumnTermin = new TableColumn(table, SWT.NONE);
    bTableColumnTermin.setToolTipText("Termin am Zielort");
    bTableColumnTermin.setWidth(43);
    bTableColumnTermin.setText("Termin");

    final TableColumn bTableColumnTransportVon = new TableColumn(table, SWT.NONE);
    bTableColumnTransportVon.setWidth(188);
    bTableColumnTransportVon.setText("Transport von");

    final TableColumn bTtableColumnPatient = new TableColumn(table, SWT.NONE);
    bTtableColumnPatient.setWidth(160);
    bTtableColumnPatient.setText("Patient");

    final TableColumn bTableColumnTransportNach = new TableColumn(table, SWT.NONE);
    bTableColumnTransportNach.setWidth(188);
    bTableColumnTransportNach.setText("Transport nach");

    final TableColumn bTableColumnTA = new TableColumn(table, SWT.NONE);
    bTableColumnTA.setToolTipText("Transportart");
    bTableColumnTA.setWidth(23);
    bTableColumnTA.setText("T");

    final TableColumn anmerkungTransporte = new TableColumn(table, SWT.NONE);
    anmerkungTransporte.setWidth(66);
    anmerkungTransporte.setText("Anmerkung");

    Listener sortListener = new Listener() {

        public void handleEvent(Event e) {
            // determine new sort column and direction
            TableColumn sortColumn = viewer.getTable().getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = viewer.getTable().getSortDirection();
            // revert the sort order if the column is the same
            if (sortColumn == currentColumn) {
                if (dir == SWT.UP)
                    dir = SWT.DOWN;
                else
                    dir = SWT.UP;
            } else {
                viewer.getTable().setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            // sort the data based on column and direction
            String sortIdentifier = null;
            if (currentColumn == bTableColumnOrtsstelle)
                sortIdentifier = TransportSorter.RESP_STATION_SORTER;
            if (currentColumn == bTableColumnAbfahrt)
                sortIdentifier = TransportSorter.ABF_SORTER;
            if (currentColumn == bTableColumnAnkunft)
                sortIdentifier = TransportSorter.AT_PATIENT_SORTER;
            if (currentColumn == bTableColumnTermin)
                sortIdentifier = TransportSorter.TERM_SORTER;
            if (currentColumn == bTableColumnTransportVon)
                sortIdentifier = TransportSorter.TRANSPORT_FROM_SORTER;
            if (currentColumn == bTtableColumnPatient)
                sortIdentifier = TransportSorter.PATIENT_SORTER;
            if (currentColumn == bTableColumnTransportNach)
                sortIdentifier = TransportSorter.TRANSPORT_TO_SORTER;
            if (currentColumn == bTableColumnTA)
                sortIdentifier = TransportSorter.TA_SORTER;
            if (currentColumn == anmerkungTransporte)
                sortIdentifier = TransportSorter.NOTES_SORTER;

            // apply the filter
            viewer.getTable().setSortDirection(dir);
            viewer.setSorter(new TransportSorter(sortIdentifier, dir));
        }
    };

    // attach the listener
    bTableColumnOrtsstelle.addListener(SWT.Selection, sortListener);
    bTableColumnAbfahrt.addListener(SWT.Selection, sortListener);
    bTableColumnAnkunft.addListener(SWT.Selection, sortListener);
    bTableColumnTermin.addListener(SWT.Selection, sortListener);
    bTableColumnTransportVon.addListener(SWT.Selection, sortListener);
    bTtableColumnPatient.addListener(SWT.Selection, sortListener);
    bTableColumnTransportNach.addListener(SWT.Selection, sortListener);
    bTableColumnTA.addListener(SWT.Selection, sortListener);
    anmerkungTransporte.addListener(SWT.Selection, sortListener);

    return viewer;
}

From source file:at.rc.tacos.client.view.TransportForm.java

License:Open Source License

private void createAssignCarTable() {
    viewerAssign = new TableViewer(assignCarGroup, SWT.VIRTUAL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
    assignVehicleContentProvider = new AssignVehicleContentProvider();
    viewerAssign.setContentProvider(assignVehicleContentProvider);
    viewerAssign.setLabelProvider(new VehicleAssignLabelProvider());
    viewerAssign.setInput(ModelFactory.getInstance().getVehicleManager().getReadyVehicleList());
    final Table table_1 = viewerAssign.getTable();
    final FormData fd_table_1 = new FormData();
    fd_table_1.right = new FormAttachment(0, 824);
    fd_table_1.left = new FormAttachment(0, 3);
    fd_table_1.top = new FormAttachment(0, 1);
    fd_table_1.bottom = new FormAttachment(0, 122);
    table_1.setLayoutData(fd_table_1);// w ww.j  a v a  2 s . c  om

    viewerAssign.getTable().addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {
            if (viewerAssign.getTable().getItem(new Point(e.x, e.y)) == null) {
                viewerAssign.setSelection(new StructuredSelection());
            }
        }
    });

    final Table table = viewerAssign.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    final TableColumn stationColumn = new TableColumn(table, SWT.NONE);
    stationColumn.setToolTipText("Aktuelle Dienststelle des Fahrzeuges");
    stationColumn.setWidth(30);
    stationColumn.setText("Dienststelle");

    final TableColumn nameColumn = new TableColumn(table, SWT.NONE);
    nameColumn.setToolTipText("Fahrzeug");
    nameColumn.setWidth(60);
    nameColumn.setText("Fahrzeug");

    final TableColumn typeColumn = new TableColumn(table, SWT.NONE);
    typeColumn.setWidth(60);
    typeColumn.setText("Fahrzeugtyp");

    final TableColumn driverColumn = new TableColumn(table, SWT.NONE);
    driverColumn.setToolTipText("Fahrer");
    driverColumn.setWidth(100);
    driverColumn.setText("Fahrer");

    final TableColumn medicIColumn = new TableColumn(table, SWT.NONE);
    medicIColumn.setToolTipText("Sanitter I");
    medicIColumn.setWidth(100);
    medicIColumn.setText("Sanitter I");

    final TableColumn medicIIColumn = new TableColumn(table, SWT.NONE);
    medicIIColumn.setToolTipText("Sanitter II");
    medicIIColumn.setWidth(100);
    medicIIColumn.setText("Sanitter II");

    Listener sortListener = new Listener() {

        public void handleEvent(Event e) {
            // determine new sort column and direction
            TableColumn sortColumn = viewerAssign.getTable().getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = viewerAssign.getTable().getSortDirection();
            // revert the sort order if the column is the same
            if (sortColumn == currentColumn) {
                if (dir == SWT.UP)
                    dir = SWT.DOWN;
                else
                    dir = SWT.UP;
            } else {
                viewerAssign.getTable().setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            // sort the data based on column and direction
            String sortIdentifier = null;
            if (currentColumn == stationColumn)
                sortIdentifier = VehicleSorter.CURRENT_STATION_SORTER;
            if (currentColumn == nameColumn)
                sortIdentifier = VehicleSorter.VEHICLE_SORTER;
            if (currentColumn == typeColumn)
                sortIdentifier = VehicleSorter.VEHICLE_TYPE_SORTER;
            if (currentColumn == driverColumn)
                sortIdentifier = VehicleSorter.DRIVER_SORTER;
            if (currentColumn == medicIColumn)
                sortIdentifier = VehicleSorter.PARAMEDIC_I_SORTER;
            if (currentColumn == medicIIColumn)
                sortIdentifier = VehicleSorter.PARAMEDIC_II_SORTER;
            // apply the filter
            viewerAssign.getTable().setSortDirection(dir);
            viewerAssign.setSorter(new VehicleSorter(sortIdentifier, dir));
            viewerAssign.refresh();
        }
    };

    // attach the listener
    stationColumn.addListener(SWT.Selection, sortListener);
    nameColumn.addListener(SWT.Selection, sortListener);
    typeColumn.addListener(SWT.Selection, sortListener);
    driverColumn.addListener(SWT.Selection, sortListener);
    medicIColumn.addListener(SWT.Selection, sortListener);
    medicIIColumn.addListener(SWT.Selection, sortListener);

    viewerAssign.refresh();
}