1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 Association for Decentralized
3 * Information Management in Industry THTH ry.
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the THTH Simantics
6 * Division Member Component License which accompanies this
7 * distribution, and is available at
8 * http://www.simantics.org/legal/sdmcl-v10.html
11 * Semantum Oy - initial API and implementation
12 *******************************************************************************/
13 package org.simantics.spreadsheet.common;
15 import org.eclipse.jface.resource.FontDescriptor;
16 import org.eclipse.swt.SWT;
17 import org.eclipse.swt.graphics.FontData;
18 import org.simantics.document.server.io.IFont;
19 import org.simantics.document.server.io.ITreeTableCell;
20 import org.simantics.document.server.io.SimpleFont;
22 public class TreeTableCell extends TableCell implements ITreeTableCell {
24 private int parent = -1;
26 private boolean editable = true;
29 public TreeTableCell() {
32 public TreeTableCell(String text, Object data, Object font, int parent, int row, int column, boolean editable) {
33 super(column, row, 0, 0, text, (IFont)font, null, null, false, 1, 1);
34 this.editable = editable;
40 public int getRowSpan() {
41 throw new IllegalStateException("Row span is not supported in TreeTableCell");
45 public int getColumnSpan() {
46 throw new IllegalStateException("Column span is not supported in TreeTableCell");
49 public static TreeTableCell createTreeTableCell(String text, Object data, Object font, int parent, int row, int column, boolean editable) {
50 return new TreeTableCell(text, data, extractIFont(font), parent, row, column, editable);
53 private static IFont extractIFont(Object font) {
54 if(font instanceof FontDescriptor) {
55 FontDescriptor descriptor = (FontDescriptor)font;
59 for(FontData d : descriptor.getFontData()) {
61 if((d.getStyle() & SWT.ITALIC) != 0) style += "Italic";
62 if((d.getStyle() & SWT.BOLD) != 0) style += "Bold";
65 return new SimpleFont(family, style, size);
70 public void setParent(int parent) {
75 public int getParent() {
80 public Object getData() {
85 public boolean isEditable() {