Index: editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/controls/decor/StructCell.java |
=================================================================== |
--- editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/controls/decor/StructCell.java (revision 0) |
+++ editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/controls/decor/StructCell.java (revision 0) |
@@ -0,0 +1,65 @@ |
+/******************************************************************************* |
+ * Copyright (c) 2012 xored software, Inc. All rights reserved. This program and the accompanying |
+ * materials are made available under the terms of the Eclipse Public License v1.0 which accompanies |
+ * this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: |
+ * xored software, Inc. - initial API and implementation (Yuri Strot) |
+ ******************************************************************************/ |
+package com.xored.glance.ui.controls.decor; |
+ |
+import org.eclipse.jface.util.Policy; |
+import org.eclipse.swt.custom.StyleRange; |
+import org.eclipse.swt.graphics.Color; |
+import org.eclipse.swt.graphics.Font; |
+import org.eclipse.swt.graphics.Image; |
+import org.eclipse.swt.graphics.Rectangle; |
+import org.eclipse.swt.widgets.Item; |
+ |
+import com.xored.glance.ui.utils.TextUtils; |
+ |
+public abstract class StructCell extends Cell { |
+ |
+ static final StyleRange[] NO_STYLES = new StyleRange[0]; |
+ |
+ static final String KEY_TEXT_LAYOUT = Policy.JFACE + "styled_label_key_"; //$NON-NLS-1$ |
+ |
+ public StyleRange[] styles = NO_STYLES; |
+ |
+ public StructCell(int column) { |
+ super(column); |
+ } |
+ |
+ public abstract Rectangle getBounds(); |
+ |
+ public abstract Color getForeground(); |
+ |
+ public abstract Color getBackground(); |
+ |
+ public abstract Image getImage(); |
+ |
+ public abstract Rectangle getImageBounds(); |
+ |
+ public abstract Rectangle getTextBounds(); |
+ |
+ public abstract String getText(); |
+ |
+ public abstract Font getFont(); |
+ |
+ public abstract boolean isSelected(); |
+ |
+ @Override |
+ protected Object getElement() { |
+ return getItem(); |
+ } |
+ |
+ protected abstract Item getItem(); |
+ |
+ protected StyleRange[] nativeStyles() { |
+ String key = KEY_TEXT_LAYOUT + getColumn(); |
+ Object data = getItem().getData(key); |
+ if (data instanceof StyleRange[]) { |
+ return TextUtils.copy((StyleRange[]) data); |
+ } |
+ return new StyleRange[0]; |
+ } |
+ |
+} |