use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.
the class JaretTable method mousePressed.
/**
* Handle mouse pressed.
*
* @param x x coordinate
* @param y y coordinate
* @param popuptrigger true if the button pressed was the popup trigger
* @param stateMask statemask from the event
*/
private void mousePressed(int x, int y, boolean popuptrigger, int stateMask) {
// check for location over drag marker and start fill drag if necessary
if (_dragMarkerRect != null && _dragMarkerRect.contains(x, y)) {
_isFillDrag = true;
_firstFillDragSelect = _selectedIdxRectangle;
return;
}
IRow row = rowByBottomBorder(y);
if (row != null && _rowResizeAllowed && (_tvs.getRowHeigthMode(row) == RowHeightMode.VARIABLE || _tvs.getRowHeigthMode(row) == RowHeightMode.OPTANDVAR) && (!_resizeRestriction || Math.abs(x - _tableRect.x) <= SELDELTA || (_fixedColRect != null && _fixedColRect.contains(x, y)))) {
_heightDraggedRowInfo = getRowInfo(row);
return;
} else {
IColumn col = colByRightBorder(x);
if (col != null && _columnResizeAllowed && _tvs.columnResizingAllowed(col) && (!_resizeRestriction || _headerRect == null || _headerRect.contains(x, y))) {
_widthDraggedColumn = getColInfo(col);
return;
}
}
// check header drag
if (_headerResizeAllowed && Math.abs(_headerRect.y + _headerRect.height - y) <= SELDELTA) {
_headerDragged = true;
return;
}
// handle mouse press for selection
boolean doSelect = true;
// check focus set
if (_tableRect.contains(x, y) || (_fixedColumns > 0 && _fixedColRect.contains(x, y)) || (_fixedRows > 0 && _fixedRowRect.contains(x, y))) {
setFocus(x, y);
doSelect = !handleEditorSingleClick(x, y);
}
// check hierarchy
if (_tableRect.contains(x, y) || (_fixedColumns > 0 && _fixedColRect.contains(x, y)) || (_fixedRows > 0 && _fixedRowRect.contains(x, y))) {
IRow xrow = rowForY(y);
IColumn xcol = colForX(x);
if (xrow != null && xcol != null && isHierarchyColumn(xrow, xcol)) {
Rectangle rect = getCellBounds(xrow, xcol);
IHierarchyRenderer hrenderer = (IHierarchyRenderer) getCellRenderer(xrow, xcol);
if (hrenderer.isInActiveArea(xrow, rect, x, y)) {
toggleExpanded(xrow);
}
}
}
// check header sorting clicks
IColumn xcol = colForX(x);
if (_allowSorting && _headerRect.contains(x, y) && _headerRenderer.isSortingClick(getHeaderDrawingArea(xcol), xcol, x, y)) {
_tvs.setSorting(xcol);
} else if (doSelect) {
// selection can be intercepted by editor clicks
handleSelection(x, y, stateMask, false);
}
}
use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.
the class JaretTable method getPreferredRowHeight.
/**
* Calculate the preferred height of a row. Only visibl columns are taken into account.
*
* @param gc Graphics context
* @param row row to calculate the height for
* @return preferred height or -1 if no preferred height can be determined
*/
private int getPreferredRowHeight(GC gc, IRow row) {
int result = -1;
for (IColumn column : _cols) {
if (_tvs.getColumnVisible(column)) {
ICellRenderer renderer = getCellRenderer(row, column);
ICellStyle cellStyle = _tvs.getCellStyle(row, column);
int ph = renderer.getPreferredHeight(gc, cellStyle, _tvs.getColumnWidth(column), row, column);
if (ph > result) {
result = ph;
}
}
}
return result;
}
use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.
the class ConcordanceSearchDialog method createDialogArea.
@Override
protected Control createDialogArea(Composite parent) {
tparent = (Composite) super.createDialogArea(parent);
GridLayoutFactory.swtDefaults().spacing(0, 0).extendedMargins(SWT.DEFAULT, SWT.DEFAULT, 0, 0).applyTo(tparent);
// tparent.setLayout(new GridLayout());
GridData parentData = new GridData(GridData.FILL_BOTH);
parentData.widthHint = 1058;
tparent.setLayoutData(parentData);
Group groupSearch = new Group(tparent, SWT.NONE);
GridLayoutFactory.swtDefaults().margins(5, 5).numColumns(3).equalWidth(false).applyTo(groupSearch);
GridDataFactory.fillDefaults().grab(true, false).applyTo(groupSearch);
groupSearch.setText(Messages.getString("dialog.ConcordanceSearchDialog.groupSearch"));
Label lblSearch = new Label(groupSearch, SWT.NONE);
lblSearch.setText(Messages.getString("dialog.ConcordanceSearchDialog.lblSearch"));
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(lblSearch);
cmbSearch = new Combo(groupSearch, SWT.BORDER | SWT.DROP_DOWN);
cmbSearch.setText(strSearchText == null ? "" : InnerTagUtil.resolveTag(strSearchText));
GridData txtData = new GridData();
// 解决在 Windows 下文本框高度太小的问题
// txtData.heightHint = 20;
txtData.widthHint = 610;
cmbSearch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
btnSearch = new Button(groupSearch, SWT.PUSH);
btnSearch.setText(Messages.getString("dialog.ConcordanceSearchDialog.btnSearch"));
new Label(groupSearch, SWT.NONE);
Composite compCondition = new Composite(groupSearch, SWT.NONE);
GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).applyTo(compCondition);
GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(compCondition);
btnIsCaseSensitive = new Button(compCondition, SWT.CHECK);
btnIsCaseSensitive.setText(Messages.getString("dialog.ConcordanceSearchDialog.btnIsCaseSensitive"));
GridDataFactory.swtDefaults().applyTo(btnIsCaseSensitive);
btnIsIgnoreMark = new Button(compCondition, SWT.CHECK);
btnIsIgnoreMark.setText(Messages.getString("dialog.ConcordanceSearchDialog.btnIsIgnoreMark"));
btnIsIgnoreMark.setSelection(true);
GridDataFactory.swtDefaults().applyTo(btnIsIgnoreMark);
btnApplyRegularExpression = new Button(compCondition, SWT.CHECK);
btnApplyRegularExpression.setText(Messages.getString("dialog.ConcordanceSearchDialog.btnApplyRegularExpression"));
GridDataFactory.swtDefaults().applyTo(btnApplyRegularExpression);
Label lblTM = new Label(groupSearch, SWT.NONE);
lblTM.setText(Messages.getString("dialog.ConcordanceSearchDialog.lblDB"));
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(lblTM);
Composite compDB = new Composite(groupSearch, SWT.NONE);
GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(compDB);
GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(compDB);
cmbDatabase = new Combo(compDB, SWT.READ_ONLY);
GridDataFactory.swtDefaults().hint(150, SWT.DEFAULT).applyTo(cmbDatabase);
initDatabaseCombo();
btnSelectLang = new Button(compDB, SWT.RIGHT);
// GridData data = new GridData();
// data.widthHint = 150;
// data.heightHint = 27;
// btnSelectLang.setLayoutData(data);
// btnSelectLang.setImage(Activator.getImageDescriptor(ImageConstants.CONCORDANCE_SELECT_LANG).createImage());
// btnSelectLang.addPaintListener(new PaintListener() {
// public void paintControl(PaintEvent e) {
// e.gc.drawText(Messages.getString("dialog.ConcordanceSearchDialog.btnSelectLang"), 5, 5,
// SWT.DRAW_TRANSPARENT);
// }
// });
btnSelectLang.setText(Messages.getString("dialog.ConcordanceSearchDialog.btnSelectLang"));
initLanguageMenu();
FormToolkit toolkit = new FormToolkit(parent.getDisplay());
Group groupFilter = new Group(tparent, SWT.None);
GridLayoutFactory.swtDefaults().margins(5, 5).applyTo(groupFilter);
GridDataFactory.fillDefaults().grab(true, false).applyTo(groupFilter);
groupFilter.setText(Messages.getString("dialog.ConcordanceSearchDialog.groupFilter"));
cmpExpandableFilter = toolkit.createExpandableComposite(groupFilter, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE);
cmpExpandableFilter.setText(Messages.getString("dialog.ConcordanceSearchDialog.cmpExpandableFilter"));
Composite cmpFilter = toolkit.createComposite(cmpExpandableFilter);
cmpFilter.setLayout(new GridLayout(3, false));
GridDataFactory.fillDefaults().grab(true, false).applyTo(cmpFilter);
cmpExpandableFilter.setBackground(tparent.getBackground());
cmpExpandableFilter.setClient(cmpFilter);
cmpFilter.setBackground(tparent.getBackground());
cmbSrcOrTgt = new Combo(cmpFilter, SWT.READ_ONLY);
GridDataFactory.swtDefaults().hint(100, SWT.DEFAULT).applyTo(cmbSrcOrTgt);
cmbSrcOrTgt.setItems(new String[] { Messages.getString("dialog.ConcordanceSearchDialog.cmbSrcOrTgt1"), Messages.getString("dialog.ConcordanceSearchDialog.cmbSrcOrTgt2") });
cmbSrcOrTgt.setData(Messages.getString("dialog.ConcordanceSearchDialog.cmbSrcOrTgt1"), strSrcLang);
cmbSrcOrTgt.setData(Messages.getString("dialog.ConcordanceSearchDialog.cmbSrcOrTgt2"), strTgtLang);
cmbContain = new Combo(cmpFilter, SWT.READ_ONLY);
GridDataFactory.swtDefaults().hint(100, SWT.DEFAULT).applyTo(cmbContain);
cmbContain.setItems(new String[] { Messages.getString("dialog.ConcordanceSearchDialog.cmbContain1"), Messages.getString("dialog.ConcordanceSearchDialog.cmbContain2") });
cmbContain.setData(Messages.getString("dialog.ConcordanceSearchDialog.cmbContain1"), "LIKE");
cmbContain.setData(Messages.getString("dialog.ConcordanceSearchDialog.cmbContain2"), "NOT LIKE");
cmbFilter = new Combo(cmpFilter, SWT.BORDER | SWT.DROP_DOWN);
GridDataFactory.swtDefaults().hint(410, SWT.DEFAULT).applyTo(cmbFilter);
cmpExpandableFilter.setExpanded(false);
groupTable = new Group(tparent, SWT.None);
GridLayoutFactory.swtDefaults().margins(5, 5).spacing(0, 2).numColumns(1).equalWidth(false).applyTo(groupTable);
GridDataFactory.fillDefaults().hint(740, 450).applyTo(groupTable);
groupTable.setText(Messages.getString("dialog.ConcordanceSearchDialog.groupTable"));
groupTable.setBackground(groupTable.getParent().getBackground());
groupTable.setBackgroundMode(SWT.INHERIT_FORCE);
cmpExpandableFilter.addExpansionListener(new IExpansionListener() {
public void expansionStateChanging(ExpansionEvent e) {
layoutExpandable();
}
public void expansionStateChanged(ExpansionEvent e) {
layoutExpandable();
}
});
jTable = new JaretTable(groupTable, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL) {
public void rowSelectionAdded(IRow row) {
super.rowSelectionAdded(row);
// XPropRow propRow = (XPropRow) row;
// HashMap<String, String> map = (HashMap<String, String>) propRow.getDataMap();
// String strChangeDate = map.get("changeDate");
// // strChangeDate = checkString(strChangeDate == null || strChangeDate.equals("") ? "" :
// CommonFunctions
// // .retGMTdate(strChangeDate));
// strChangeDate = checkString(strChangeDate == null || strChangeDate.equals("") ? "" : strChangeDate);
// String strChangeId = checkString(map.get("changeId"));
// String strDbInfo = checkString(map.get("dbType")) + "/" + checkString(map.get("severName")) + "/"
// + checkString(map.get("dbName"));
// String strProjectInfo = checkString(map.get("projectRef"));
// String strJobInfo = checkString(map.get("jobRef"));
// MessageFormat mf = new MessageFormat(strMsg);
// lblInfo.setText(mf.format(new String[] { strChangeDate, strChangeId, strDbInfo, strProjectInfo,
// strJobInfo }));
}
};
jTable.setLayoutData(new GridData(GridData.FILL_BOTH));
((DefaultTableHeaderRenderer) jTable.getHeaderRenderer()).setAlignment(DefaultTableHeaderRenderer.Alignment.LEFT);
jTable.setHeaderResizeAllowed(false);
jTable.setAllowSorting(false);
jTable.registerCellEditor(String.class, new ReadOnlyTextCellEditor(true));
PropListeningTableModel model = new PropListeningTableModel();
ListPropCol colTag = new ListPropCol("Flag", Messages.getString("dialog.ConcordanceSearchDialog.colTag"), "Flag", -1);
model.addColumn(colTag);
jTable.getTableViewState().setColumnWidth(colTag, 55);
if (strSrcLang != null) {
PropCol ct1 = new PropCol("Source", strSrcLang, "Source");
ct1.setEditable(false);
model.addColumn(ct1);
jTable.getTableViewState().setColumnWidth(ct1, 325);
}
if (strTgtLang != null) {
PropCol col = new PropCol("Target", strTgtLang, "Target");
model.addColumn(col);
jTable.getTableViewState().setColumnWidth(col, 325);
}
for (int i = 0; i < lstLangs.size(); i++) {
String strLang = lstLangs.get(i);
ListPropCol col = new ListPropCol("Target", strLang, "LstTarget", i);
col.setEditable(true);
model.addColumn(col);
jTable.getTableViewState().setColumnWidth(col, 0);
}
PropCol attrCol = new PropCol("Attribute", "Attribute", "Attribute");
attrCol.setEditable(false);
model.addColumn(attrCol);
jTable.getTableViewState().setColumnWidth(attrCol, 325);
tableModel = model;
jTable.setHeaderHeight(20);
jTable.setTableModel(tableModel);
jTable.setDrawHeader(true);
// jTable.getTableViewState().setRowHeightMode(ITableViewState.RowHeightMode.VARIABLE);
jTable.registerCellRenderer(tableModel.getColumn(2), new TextCellRenderer());
colCount = jTable.getColumnCount();
for (int colNum = colCount - 2; colNum >= 3; colNum--) {
IColumn column = jTable.getColumn(colNum);
jTable.registerCellRenderer(tableModel.getColumn(colNum), new TextCellRenderer());
jTable.getTableViewState().setColumnVisible(column, false);
}
ImageCellRender imgRender = new ImageCellRender();
// 表示需要删除标记(记录有标记时要显示的图片)
imgRender.addImageDescriptorMapping(Boolean.FALSE, "1", Activator.getImageDescriptor(ImageConstants.TAG_DELETE));
// 表示需要添加标记(记录有标记时要显示的图片)
imgRender.addImageDescriptorMapping(Boolean.TRUE, "2", Activator.getImageDescriptor(ImageConstants.TAG_ADD));
jTable.registerCellRenderer(tableModel.getColumn(0), imgRender);
jTable.getSelectionModel().setOnlyRowSelectionAllowed(true);
jTable.getSelectionModel().setMultipleSelectionAllowed(false);
Composite cmpPage = new Composite(groupTable, SWT.NONE);
GridLayoutFactory.fillDefaults().spacing(3, 0).extendedMargins(0, 5, 0, 0).numColumns(3).equalWidth(false).applyTo(cmpPage);
cmpPage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
cmpPage.setBackground(cmpPage.getParent().getBackground());
cmpPage.setBackgroundMode(SWT.INHERIT_FORCE);
new Label(cmpPage, SWT.None).setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
ToolBar toolBar = new ToolBar(cmpPage, SWT.NO_FOCUS | SWT.FLAT);
btnFirst = new ToolItem(toolBar, SWT.PUSH);
btnFirst.setImage(firstImage);
btnPre = new ToolItem(toolBar, SWT.NONE);
btnPre.setImage(preImage);
btnNext = new ToolItem(toolBar, SWT.NONE);
btnNext.setImage(nextImage);
btnLast = new ToolItem(toolBar, SWT.NONE);
btnLast.setImage(lastImage);
txtPage = new Text(cmpPage, SWT.BORDER);
GridDataFactory.fillDefaults().hint(80, SWT.DEFAULT).applyTo(txtPage);
readDialogSettings();
updateCombo(cmbSearch, lstSearchHistory);
updateCombo(cmbFilter, lstFilterHistory);
if (!strSearchText.equals("")) {
cmbSearch.setText(strSearchText);
} else if (lstSearchHistory != null && lstSearchHistory.size() > 0) {
cmbSearch.setText(lstSearchHistory.get(0));
}
cmbSearch.setSelection(new Point(0, cmbSearch.getText().length()));
if (lstFilterHistory != null && lstFilterHistory.size() > 0) {
cmbFilter.setText(lstFilterHistory.get(0));
cmbFilter.setSelection(new Point(0, cmbFilter.getText().length()));
}
initListener();
return parent;
}
use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.
the class ConcordanceSearchDialog method readDialogSettings.
private void readDialogSettings() {
IDialogSettings ids = getDialogSettings();
String[] arrSearchHistory = ids.getArray("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.searchHistory");
if (arrSearchHistory != null) {
lstSearchHistory.clear();
for (int i = 0; i < arrSearchHistory.length; i++) {
lstSearchHistory.add(arrSearchHistory[i]);
}
}
btnIsCaseSensitive.setSelection(ids.getBoolean("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.caseSensitive"));
btnIsIgnoreMark.setSelection(!ids.getBoolean("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.ignoreMark"));
btnApplyRegularExpression.setSelection(ids.getBoolean("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.regEx"));
String selTB = ids.get("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.selTB");
int selIndex = 0;
if (selTB != null) {
for (int i = 0; i < cmbDatabase.getItemCount(); i++) {
if (selTB.equals(cmbDatabase.getItem(i))) {
selIndex = i;
break;
}
}
}
cmbDatabase.select(selIndex);
String[] arrTarget = ids.getArray("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.selTgt");
List<String> lstSelItem = new ArrayList<String>();
if (arrTarget != null) {
for (int i = 0; i < menu.getItemCount(); i++) {
MenuItem item = menu.getItem(i);
for (String target : arrTarget) {
if (item.getText().equals(target)) {
item.setSelection(true);
break;
}
}
if (item.getSelection()) {
lstSelItem.add(item.getText());
}
}
}
List<IColumn> lstShowColumn = new ArrayList<IColumn>();
boolean blnIsResetWidth = false;
for (int index = 1; index < tableModel.getColumnCount(); index++) {
IColumn column = tableModel.getColumn(index);
int width = jTable.getTableViewState().getColumnWidth(column);
if (lstSelItem.indexOf(column.getHeaderLabel()) != -1 && width == 0) {
jTable.getTableViewState().setColumnVisible(column, true);
jTable.updateColumnList();
jTable.redraw();
lstShowColumn.add(column);
blnIsResetWidth = true;
} else if (width > 0) {
lstShowColumn.add(column);
}
}
if (blnIsResetWidth) {
int width = totalWidth / lstShowColumn.size() + 1;
for (int colNum = 1; colNum < jTable.getColumnCount(); colNum++) {
jTable.getTableViewState().setColumnWidth(jTable.getColumn(colNum), width);
}
}
cmpExpandableFilter.setExpanded(ids.getBoolean("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.isExpandFilter"));
try {
cmbSrcOrTgt.select(ids.getInt("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.selSrcOrTgt"));
} catch (NumberFormatException e) {
cmbSrcOrTgt.select(1);
}
try {
cmbContain.select(ids.getInt("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.contain"));
} catch (NumberFormatException e) {
cmbContain.select(1);
}
String[] arrFilterHistory = ids.getArray("net.heartsome.cat.database.ui.tm.dialog.ConcordanceSearchDialog.filterHistory");
if (arrFilterHistory != null) {
lstFilterHistory.clear();
for (int i = 0; i < arrFilterHistory.length; i++) {
lstFilterHistory.add(arrFilterHistory[i]);
}
}
layoutExpandable();
}
use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.
the class TableExample method createControls.
/**
* Create the controls that compose the console test.
*
*/
protected void createControls() {
GridLayout gl = new GridLayout();
gl.numColumns = 1;
_shell.setLayout(gl);
GridData gd = new GridData(GridData.FILL_BOTH);
_jt = new JaretTable(_shell, SWT.V_SCROLL | SWT.H_SCROLL);
_jt.setLayoutData(gd);
if (_tableModel == null) {
DefaultJaretTableModel model = new PropListeningTableModel();
model.addRow(new DummyRow("r1", "The quick brown fox jumps over the crazy dog.", "Mars", true, new Date(), TableExample.getImageRegistry().get("splash")));
model.addRow(new DummyRow("r2", "Dogma i am god", "Venus", true, new Date()));
model.addRow(new DummyRow("r3", "Wenn der kleine Blindtext einmal gro� und wichtig geworden ist, wird er bedeutungsschwanger die Welt erorbern.", "Jupiter", true, new Date(), TableExample.getImageRegistry().get("keyboard")));
model.addRow(new DummyRow("r4", "wewe we wew e we we we w ewe", "Uranus", true, new Date()));
model.addRow(new DummyRow("r5", "sdjg sd jhgd dsh hjsgfjhgdf", "Pluto", true, new Date()));
model.addRow(new DummyRow("r6", "wewe we wew e we we we w ewe", "Earth", true, new Date()));
model.addRow(new DummyRow("r7", "wewe we wew e we we we w ewe", "Mars", false, new Date()));
model.addRow(new DummyRow("r8", "wewe we wew e we we we w ewe", "Sun", false, new Date()));
model.addRow(new DummyRow("r9", "wewe we wew e we we we w ewe", "Earth", true, new Date()));
model.addRow(new DummyRow("ra", "wewe we wew e we we we w ewe", "Saturn", true, new Date()));
model.addRow(new DummyRow("rb", "wewe we wew e we we we w ewe", "Saturn", true, new Date()));
model.addRow(new DummyRow("rc", "wewe we wew e we we we w ewe", "Pluto", true, new Date()));
model.addRow(new DummyRow("rd", "wewe we wew e we we we w ewe", "Jupiter", true, new Date()));
model.addRow(new DummyRow("re", "This is the last row in the sort order of the model!", "Mars", true, new Date()));
IColumn ct1 = new PropCol("t1", "column 1", "T1");
model.addColumn(ct1);
model.addColumn(new PropCol("d1", "Date", "D1"));
model.addColumn(new PropCol("t2", "column 2", "T2"));
model.addColumn(new PropCol("t3", "column 3", "T3"));
model.addColumn(new PropCol("b1", "column 4", "B1"));
model.addColumn(new PropCol("i1", "column 5", "Img"));
model.addColumn(new PropCol("integer", "column 6", "Integer", Integer.class));
model.addColumn(new PropCol("integer2", "Integer", "Integer", Integer.class));
model.addColumn(new PropCol("integer3", "Smiley", "Integer", Integer.class));
model.addColumn(new PropCol("Risk", "Risk", "Risk"));
model.addColumn(new PropCol("RiskProb", "RProb", "RiskProb"));
model.addColumn(new PropCol("RiskSeverity", "RSeverity", "RiskSeverity"));
model.addColumn(new PropCol("Enum", "EnumTest", "EnumProperty"));
model.addColumn(new PropCol("double", "Double", "Adouble"));
model.addColumn(new PropCol("x1", "ComboEdit", "X1"));
model.addColumn(new PropCol("Enum2", "EnumImage", "EnumProperty"));
_tableModel = model;
}
DefaultCellStyle cs = (DefaultCellStyle) _jt.getTableViewState().getCellStyleProvider().getDefaultCellStyle().copy();
cs.setHorizontalAlignment(ITableViewState.HAlignment.RIGHT);
_jt.getTableViewState().getCellStyleProvider().setColumnCellStyle(_tableModel.getColumn(0), cs);
_jt.getTableViewState().getCellStyleProvider().setColumnCellStyle(_tableModel.getColumn(7), cs);
_jt.getTableViewState().getCellStyleProvider().setColumnCellStyle(_tableModel.getColumn(10), cs);
_jt.registerCellRenderer(_tableModel.getColumn(2), new StyleTextCellRenderer("we", false));
_jt.registerCellRenderer(_tableModel.getColumn(6), new BarCellRenderer());
_jt.registerCellRenderer(_tableModel.getColumn(8), new SmileyCellRenderer());
// risk renderer and editor
_jt.registerCellRenderer(DummyRow.Risk.class, new RiskRenderer());
_jt.registerCellEditor(DummyRow.Risk.class, new RiskCellEditor());
// risk values 1 to 3
_jt.registerCellEditor(_tableModel.getColumn(10), new IntegerCellEditor(1, 3));
_jt.registerCellEditor(_tableModel.getColumn(11), new IntegerCellEditor(1, 3));
ObjectImageRenderer oiRenderer = new ObjectImageRenderer();
oiRenderer.addObjectRessourceNameMapping(DummyRow.TestEnum.ENUMVAL1, "1", "/de/jaret/examples/table/warning.gif");
oiRenderer.addObjectRessourceNameMapping(DummyRow.TestEnum.ENUMVAL2, "2", "/de/jaret/examples/table/error.gif");
oiRenderer.addObjectRessourceNameMapping(DummyRow.TestEnum.ENUMVAL3, "3", "/de/jaret/examples/table/information.gif");
_jt.registerCellRenderer(_tableModel.getColumn(15), oiRenderer);
List<Object> l = new ArrayList<Object>();
l.add("first text");
l.add("second text");
l.add("third text");
ObjectComboEditor oce = new ObjectComboEditor(l, null, true, "this is null");
_jt.registerCellEditor(((DefaultJaretTableModel) _tableModel).getColumn("x1"), oce);
_jt.setTableModel(_tableModel);
// register autofilters
_jt.registerAutoFilterForClass(Integer.class, SampleIntegerAutoFilter.class);
_jt.registerAutoFilterForColumn(_tableModel.getColumn(2), SampleTextAutoFilter.class);
JaretTableActionFactory af = new JaretTableActionFactory();
MenuManager mm = new MenuManager();
mm.add(af.createStdAction(_jt, JaretTableActionFactory.ACTION_CONFIGURECOLUMNS));
_jt.setHeaderContextMenu(mm.createContextMenu(_jt));
MenuManager rm = new MenuManager();
rm.add(af.createStdAction(_jt, JaretTableActionFactory.ACTION_OPTROWHEIGHT));
rm.add(af.createStdAction(_jt, JaretTableActionFactory.ACTION_OPTALLROWHEIGHTS));
_jt.setRowContextMenu(rm.createContextMenu(_jt));
TableControlPanel ctrlPanel = new TableControlPanel(_shell, SWT.NULL, _jt);
}
Aggregations