1 /*
2 * This file is a part of CAST project.
3 * (c) Copyright 2007, AGH University of Science & Technology
4 * https://caribou.iisg.agh.edu.pl/trac/cast
5 *
6 * Licensed under the Eclipse Public License, Version 1.0 (the "License").
7 * You may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 * http://www.eclipse.org/legal/epl-v10.html
10 */
11 /*
12 * File: AbstractTableView.java
13 * Created: 2005-11-30
14 * Author: apohllo
15 * $Id: AbstractTableView.java 2312 2009-01-12 22:53:55Z tmilos $
16 */
17
18 package pl.edu.agh.cast.ui;
19
20 import org.eclipse.jface.viewers.TableViewer;
21 import org.eclipse.swt.SWT;
22 import org.eclipse.swt.widgets.Composite;
23
24 /**
25 * This class is base class for all views which implement the IConfigurableView and have {@link TableViewer} as visual
26 * model.
27 *
28 * @author AGH CAST Team
29 */
30 public abstract class AbstractTableView extends AbstractConfigurableView {
31
32 /**
33 * Tree viewer which is used by this view.
34 */
35 protected TableViewer viewer;
36
37 /**
38 * This method initializes the part control, i.e. the TableViewer.
39 *
40 * {@inheritDoc}
41 *
42 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
43 */
44 @Override
45 public void createPartControl(Composite parent) {
46 createControl(parent);
47
48 // actions and menus oriented methods
49 makeActions();
50 hookContextMenu();
51 hookDoubleClickAction();
52 contributeToActionBars();
53 activate();
54 }
55
56 /**
57 * This method creates the tree control, it is intended to be changed in subclasses which need some more
58 * sophisticated control.
59 *
60 * @param parent
61 * parent control
62 */
63 protected void createControl(Composite parent) {
64 viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
65 }
66
67 /**
68 * Sets the input for the viewer. This default implementation sends the object to the viewer without checking its
69 * type, etc. This should be done in the content provider associated with the viewer.
70 *
71 * @param object
72 * input object
73 */
74 public void setInput(Object object) {
75 viewer.setInput(object);
76 }
77
78 /**
79 * Returns the input of the view.
80 *
81 * @return the input of the view
82 */
83 public Object getInput() {
84 return viewer.getInput();
85 }
86
87 /**
88 * This method sets the focus on the tree viewer.
89 *
90 * {@inheritDoc}
91 *
92 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
93 */
94 @Override
95 public void setFocus() {
96 viewer.getControl().setFocus();
97 }
98
99 /**
100 * {@inheritDoc}
101 *
102 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
103 */
104 @Override
105 public void dispose() {
106 if (viewer != null) {
107 viewer.getControl().dispose();
108 }
109 super.dispose();
110 }
111
112 protected TableViewer getViewer() {
113 return viewer;
114 }
115
116 }