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

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

Introduction

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

Prototype

public CheckboxTableViewer(Table table) 

Source Link

Document

Creates a table viewer on the given table control.

Usage

From source file:au.gov.ga.earthsci.bookmark.part.editor.LayersPropertyEditor.java

License:Apache License

@Override
public Control createControl(Composite parent) {
    container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    container.setLayout(new GridLayout(1, false));

    Label l = new Label(container, SWT.TITLE);
    l.setText(Messages.LayersPropertyEditor_LayerStateLabel);

    Table table = new Table(container,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);

    layerTable = new CheckboxTableViewer(table);
    layerTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layerTable.setContentProvider(ArrayContentProvider.getInstance());
    layerTable.getTable().setHeaderVisible(true);
    layerTable.getTable().setLinesVisible(true);

    TableViewerColumn col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(200);/*from   w ww . j a v a 2s  .c  om*/
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateLabelColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);

    col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(100);
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateOpacityColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);
    col.setEditingSupport(new EditingSupport(col.getViewer()) {

        @Override
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor textCellEditor = new TextCellEditor(layerTable.getTable());
            textCellEditor.setValidator(new ICellEditorValidator() {
                @Override
                public String isValid(Object value) {
                    try {
                        Double.parseDouble((String) value);
                        return null;
                    } catch (Exception e) {
                        return Messages.LayersPropertyEditor_InvalidOpacityMessage;
                    }
                }
            });
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected Object getValue(Object element) {
            return Double.toString(((Entry<URI, Double>) element).getValue());
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void setValue(Object element, Object value) {
            ((Entry<URI, Double>) element).setValue(Util.clamp(Double.parseDouble((String) value), 0, 1));
            layerTable.refresh(element, true);
        }

    });

    layerTable.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<URI, Double> entry = (Entry<URI, Double>) cell.getElement();
            if (cell.getColumnIndex() == 0) {
                cell.setText(entry.getKey().toString());
            } else {
                cell.setText(Double.toString(entry.getValue()));
            }
        }
    });

    fillFieldsFromProperty(getProperty());

    return container;
}

From source file:au.gov.ga.earthsci.bookmark.ui.editor.LayersPropertyEditor.java

License:Apache License

@Override
public Control createControl(Composite parent) {
    container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    container.setLayout(new GridLayout(1, false));

    Label l = new Label(container, SWT.TITLE);
    l.setText(Messages.LayersPropertyEditor_LayerStateLabel);

    Table table = new Table(container,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);
    tableColumns = new ArrayList<TableViewerColumn>();
    colToName = new ConcurrentHashMap<Integer, String>();
    colToName.put(0, "id");
    colToName.put(1, "opacity");

    layerTable = new CheckboxTableViewer(table);
    layerTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layerTable.setContentProvider(new IStructuredContentProvider() {

        @Override/*from  w  ww.  j a  va2  s .c o m*/
        public void inputChanged(Viewer arg0, Object oldItem, Object newItem) {
            for (TableViewerColumn col : tableColumns) {
                col.getColumn().dispose();
            }
            tableColumns.clear();
            colToName.clear();
            if (newItem != null) {
                Collection<String> cols = null;
                if (newItem instanceof Map) {
                    cols = getColumnsNeeded((Map) newItem);
                }

                for (String s : cols) {
                    if (!s.equals("id")) {
                        createTableColumn(s, s.equals(LayersPropertyPersister.OPACITY_ATTRIBUTE_NAME));
                    }
                }
                createTableColumn("id", false);
            }
        }

        @Override
        public void dispose() {

        }

        @Override
        public Object[] getElements(Object element) {
            List items = new ArrayList();
            Map<String, Map<String, String>> stateinfo = (Map<String, Map<String, String>>) element;
            for (Entry<String, Map<String, String>> entry : stateinfo.entrySet()) {
                items.add(entry);
            }
            return items.toArray(new Object[0]);
        }
    });

    layerTable.getTable().setHeaderVisible(true);
    layerTable.getTable().setLinesVisible(true);
    labelProv = new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<String, Map<String, String>> entry = (Entry<String, Map<String, String>>) cell.getElement();
            int index = cell.getColumnIndex();
            String colName = colToName.get(index);
            cell.setText(colName.equals("id") ? entry.getKey() : entry.getValue().get(colName));
        }
    };

    fillFieldsFromProperty(getProperty());

    return container;
}

From source file:au.gov.ga.earthsci.discovery.ui.preferences.DiscoveryServicesPreferencePage.java

License:Apache License

@Override
protected Control createContents(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    composite.setLayoutData(gd);// ww  w.ja v a2  s . c  o m

    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    composite.setLayout(layout);

    table = new Table(composite,
            SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH);
    data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT);
    table.setLayoutData(data);

    viewer = new CheckboxTableViewer(table);

    // Key listener for delete
    table.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.DEL) {
                removeSelected();
            }
        }
    });
    setTableColumns();

    viewer.setComparator(comparator);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new DiscoveryServiceLabelProvider());

    stagingSet.clear();
    stagingSet.addAll(DiscoveryServiceManager.getServices());
    viewer.setInput(stagingSet);

    viewer.setCellModifier(new ICellModifier() {
        @Override
        public boolean canModify(Object element, String property) {
            return element instanceof IDiscoveryService;
        }

        @Override
        public Object getValue(Object element, String property) {
            String name = ((IDiscoveryService) element).getName();
            return name != null ? name : ""; //$NON-NLS-1$
        }

        @Override
        public void modify(Object element, String prop, Object value) {
            if (value != null && value.toString().length() >= 0) {
                IDiscoveryService service;
                if (element instanceof Item) {
                    service = (IDiscoveryService) ((Item) element).getData();
                } else if (element instanceof IDiscoveryService) {
                    service = (IDiscoveryService) element;
                } else {
                    return;
                }
                if (!value.toString().equals(service.getName())) {
                    Map<IDiscoveryServiceProperty<?>, Object> propertyValues = new HashMap<IDiscoveryServiceProperty<?>, Object>();
                    IDiscoveryServiceProperty<?>[] properties = service.getProvider().getProperties();
                    if (properties != null) {
                        for (IDiscoveryServiceProperty<?> property : properties) {
                            propertyValues.put(property, property.getValue(service));
                        }
                    }

                    IDiscoveryService replacement = service.getProvider().createService(value.toString(),
                            service.getServiceURL(), propertyValues);
                    replacement.setEnabled(service.isEnabled());
                    stagingSet.remove(service);
                    stagingSet.add(replacement);
                    viewer.refresh();
                }
            }
        }
    });
    viewer.setColumnProperties(new String[] { "name" }); //$NON-NLS-1$
    viewer.setCellEditors(new CellEditor[] { new TextCellEditor(table) });

    viewer.setCheckStateProvider(new ICheckStateProvider() {
        @Override
        public boolean isChecked(Object element) {
            return ((IDiscoveryService) element).isEnabled();
        }

        @Override
        public boolean isGrayed(Object element) {
            return false;
        }
    });

    viewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            IDiscoveryService service = (IDiscoveryService) event.getElement();
            if (!originalEnablement.containsKey(service)) {
                originalEnablement.put(service, service.isEnabled());
            }
            service.setEnabled(event.getChecked());
            viewer.refresh();
            validateButtons();
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            validateButtons();
        }
    });

    Composite verticalButtonBar = createVerticalButtonBar(composite);
    data = new GridData(SWT.FILL, SWT.FILL, false, false);
    data.verticalAlignment = SWT.TOP;
    data.verticalIndent = 0;
    verticalButtonBar.setLayoutData(data);
    validateButtons();

    return composite;
}

From source file:bndtools.release.ui.ProjectListControl.java

License:Open Source License

private void createTableLayout(Composite parent) {

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    // Add TableColumnLayout
    TableColumnLayout layout = new TableColumnLayout();
    composite.setLayout(layout);/*from w  ww .j  a  va 2 s.c o m*/

    // Instantiate TableViewer
    projects = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    projects.setHeaderVisible(true);
    projects.setLinesVisible(true);
    projects.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            selectionListener.widgetSelected(e);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            selectionListener.widgetDefaultSelected(e);
        }
    });
    tableViewer = new CheckboxTableViewer(projects);
    tableViewer.setUseHashlookup(true);

    // Project
    TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.LEFT);
    TableColumn tableCol = tableViewerColumn.getColumn();
    layout.setColumnData(tableCol, new ColumnWeightData(60, 100, true));
    tableCol.setText(Messages.project1);

    // Repository
    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.LEFT);
    tableCol = tableViewerColumn.getColumn();
    layout.setColumnData(tableCol, new ColumnWeightData(26, 80, true));
    tableCol.setText(Messages.repository);
    tableViewerColumn.setEditingSupport(new InlineComboEditingSupport(tableViewer));

    // Bundles
    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.CENTER);
    tableCol = tableViewerColumn.getColumn();
    layout.setColumnData(tableCol, new ColumnWeightData(14, 35, true));
    tableCol.setText(Messages.bundles);

    contentProvider = new ContentProvider();
    tableViewer.setContentProvider(contentProvider);
    tableViewer.setLabelProvider(new TableLabelProvider());
    tableViewer.setColumnProperties(columnNames);
    tableViewer.setCheckStateProvider(new ICheckStateProvider() {

        @Override
        public boolean isGrayed(Object element) {
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            ProjectDiff diff = (ProjectDiff) element;
            return diff.isRelease();
        }
    });

    projects.pack();

    TableSortingEnabler.applyTableColumnSorting(tableViewer);
}

From source file:ca.mcgill.sable.soot.ui.AnalysisTypeView.java

License:Open Source License

public void createPartControl(Composite parent) {
    Table table = new Table(parent, SWT.CHECK);
    setViewer(new CheckboxTableViewer(table));
    getViewer().setContentProvider(new ArrayContentProvider());
    getViewer().setLabelProvider(new LabelProvider());
    getViewer().addCheckStateListener(this);
}

From source file:ca.mcgill.sable.soot.ui.AnalysisVisManipDialog.java

License:Open Source License

private Composite createCheckArea(Composite parent) {
    Composite comp = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();

    layout.numColumns = 1;/*from ww w.  j a  v a  2s. c o  m*/

    comp.setLayout(layout);

    GridData gd = new GridData();
    Table table = new Table(comp, SWT.CHECK);
    checkTypes = new CheckboxTableViewer(table);

    gd = new GridData(GridData.FILL_BOTH);

    checkTypes.getControl().setLayoutData(gd);

    checkTypes.setContentProvider(new ArrayContentProvider());
    checkTypes.setLabelProvider(new LabelProvider());
    return comp;
}

From source file:carisma.ui.eclipse.editors.AdfEditorMasterDetailsBlock.java

License:Open Source License

/**
 * Creates the table viewer./* w w w .  j  a va2 s. c o  m*/
 * 
 * @param toolkit
 *            The FormToolKit where the button is created
 * @param composite
 *            The corresponding Composite
 * @param managedForm
 *            for MasterDetailsBlock
 */
private void createTableAndViewer(final FormToolkit toolkit, final Composite composite,
        final IManagedForm managedForm) {
    Table table = toolkit.createTable(composite, SWT.CHECK);
    GridData gridData = new GridData(GridData.FILL_BOTH);
    gridData.heightHint = 20;
    gridData.widthHint = 100;
    gridData.verticalSpan = 4;
    table.setLayoutData(gridData);

    ISelectionChangedListener selectionChangeListener = new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            if (listSelectionChanged()) {
                managedForm.fireSelectionChanged(new SectionPart(composite, toolkit, SWT.NONE),
                        event.getSelection());
            }
        }
    };

    this.viewer = new CheckboxTableViewer(table);
    this.viewer.addSelectionChangedListener(selectionChangeListener);

    this.viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            Object selection = ((IStructuredSelection) AdfEditorMasterDetailsBlock.this.viewer.getSelection())
                    .getFirstElement();
            if (selection != null && selection instanceof CheckReference) {
                boolean state = AdfEditorMasterDetailsBlock.this.viewer.getChecked(selection);
                state = state ^ true; // XOR swaps
                AdfEditorMasterDetailsBlock.this.viewer.setChecked(selection, state);
                AdfEditorMasterDetailsBlock.this.viewer.refresh();
                AdfEditorMasterDetailsBlock.this.controller.setCheckSelection((CheckReference) selection,
                        state);
                updateRunButtonEnable();
            }
        }
    });

    this.viewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            Object obj = event.getElement();
            AdfEditorMasterDetailsBlock.this.controller.setCheckSelection((CheckReference) obj,
                    event.getChecked());
            listSelectionChanged();
            updateRunButtonEnable();
        }
    });

    this.viewer.getTable().addKeyListener(new KeyListener() {
        @Override
        public void keyPressed(final KeyEvent e) {
            if (e.keyCode == SWT.DEL) {
                deleteSelectedCheck();
            }
        }

        @Override
        public void keyReleased(final KeyEvent e) {
            // Do nothing
        }
    });

    this.viewer.setContentProvider(new SelectedChecksContentProvider());
    this.viewer.setLabelProvider(new SelectedChecksLabelProvider());
    this.viewer.setInput(this.controller.getSelectedChecksList());
    int dragAndDropOperations = DND.DROP_MOVE;
    Transfer[] transferTypes = new Transfer[] { LocalTransfer.getInstance() };
    this.viewer.addDragSupport(dragAndDropOperations, transferTypes,
            new SelectedChecksDragListener(this.viewer));
    this.viewer.addDropSupport(dragAndDropOperations, transferTypes,
            new SelectedChecksDropListener(this.viewer, this.controller));

    updateTable();
    this.viewer.getTable().select(0);
    //seems that selecting also works if there is no entry in the table
    //than nothing will be selected, but also no NullpointerException etc.
    initInvalidChecks();
}

From source file:ch.elexis.core.ui.laboratory.views.LabNotSeenView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    parent.setLayout(new FillLayout());
    Table table = new Table(parent, SWT.CHECK | SWT.V_SCROLL);
    for (int i = 0; i < columnHeaders.length; i++) {
        TableColumn tc = new TableColumn(table, SWT.NONE);
        tc.setText(columnHeaders[i]);/*from ww w  . j  a  v a 2 s .  c o m*/
        tc.setWidth(colWidths[i]);
    }
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    tv = new CheckboxTableViewer(table);
    tv.setContentProvider(new LabNotSeenContentProvider());
    tv.setLabelProvider(new LabNotSeenLabelProvider());
    tv.setUseHashlookup(true);
    tv.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();
            if (!sel.isEmpty()) {
                if (sel.getFirstElement() instanceof LabResult) {
                    LabResult lr = (LabResult) sel.getFirstElement();
                    ElexisEventDispatcher.fireSelectionEvent(lr.getPatient());
                }
            }

        }
    });
    tv.addCheckStateListener(new ICheckStateListener() {
        boolean bDaempfung;

        public void checkStateChanged(final CheckStateChangedEvent event) {
            if (bDaempfung == false) {
                bDaempfung = true;
                LabResult lr = (LabResult) event.getElement();
                boolean state = event.getChecked();
                if (state) {
                    if (CoreHub.acl.request(AccessControlDefaults.LAB_SEEN)) {
                        lr.removeFromUnseen();
                    } else {
                        tv.setChecked(lr, false);
                    }
                } else {
                    lr.addToUnseen();
                }
                bDaempfung = false;
            }
        }

    });
    makeActions();
    ViewMenus menu = new ViewMenus(getViewSite());
    menu.createToolbar(markPersonAction, markAllAction);
    heartbeat();
    CoreHub.heart.addListener(this,
            CoreHub.userCfg.get(Preferences.LABSETTINGS_CFG_LABNEW_HEARTRATE, Heartbeat.FREQUENCY_HIGH));

    tv.setInput(this);
}

From source file:ch.elexis.views.LabNotSeenView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    parent.setLayout(new FillLayout());
    Table table = new Table(parent, SWT.CHECK | SWT.V_SCROLL);
    for (int i = 0; i < columnHeaders.length; i++) {
        TableColumn tc = new TableColumn(table, SWT.NONE);
        tc.setText(columnHeaders[i]);/*from ww  w.  j av  a 2s  .  c  o  m*/
        tc.setWidth(colWidths[i]);
    }
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    tv = new CheckboxTableViewer(table);
    tv.setContentProvider(new LabNotSeenContentProvider());
    tv.setLabelProvider(new LabNotSeenLabelProvider());
    tv.setUseHashlookup(true);
    tv.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();
            if (!sel.isEmpty()) {
                if (sel.getFirstElement() instanceof LabResult) {
                    LabResult lr = (LabResult) sel.getFirstElement();
                    ElexisEventDispatcher.fireSelectionEvent(lr.getPatient());
                }
            }

        }
    });
    tv.addCheckStateListener(new ICheckStateListener() {
        boolean bDaempfung;

        public void checkStateChanged(final CheckStateChangedEvent event) {
            if (bDaempfung == false) {
                bDaempfung = true;
                LabResult lr = (LabResult) event.getElement();
                boolean state = event.getChecked();
                if (state) {
                    if (Hub.acl.request(AccessControlDefaults.LAB_SEEN)) {
                        lr.removeFromUnseen();
                    } else {
                        tv.setChecked(lr, false);
                    }
                } else {
                    lr.addToUnseen();
                }
                bDaempfung = false;
            }
        }

    });
    makeActions();
    ViewMenus menu = new ViewMenus(getViewSite());
    menu.createToolbar(markPersonAction, markAllAction);
    heartbeat();
    Hub.heart.addListener(this, Hub.localCfg.get(LabSettings.LABNEW_HEARTRATE, Heartbeat.FREQUENCY_HIGH));

    tv.setInput(this);
}

From source file:ch.gpb.elexis.cst.dialog.CstCopyProfileDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite container = new Composite(area, SWT.NONE);

    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout layout = new GridLayout(2, false);
    container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    container.setLayout(layout);//  w w w . ja v a2 s .c o m

    table = new Table(container, SWT.CHECK | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);

    String[] colLabels = getColumnLabels();
    int columnWidth[] = getColumnWidth();
    SortListener sortListener = new SortListener();
    TableColumn[] cols = new TableColumn[colLabels.length];
    for (int i = 0; i < colLabels.length; i++) {
        cols[i] = new TableColumn(table, SWT.NONE);
        cols[i].setWidth(columnWidth[i]);
        cols[i].setText(colLabels[i]);
        cols[i].setData(new Integer(i));
        cols[i].addSelectionListener(sortListener);
    }
    GridData gridDataTable = new GridData();
    gridDataTable.horizontalAlignment = GridData.FILL;
    gridDataTable.verticalAlignment = GridData.FILL;
    gridDataTable.grabExcessHorizontalSpace = true;
    gridDataTable.grabExcessVerticalSpace = true;
    table.setLayoutData(gridDataTable);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    tableViewer = new CheckboxTableViewer(table);
    tableViewer.setContentProvider(new ViewContentProvider());
    tableViewer.setLabelProvider(new ViewLabelProvider());
    tableViewer.setSorter(new PatientSorter());

    tableViewer.setInput(this);

    return area;
}