package org.tizen.emulator.manager.ui.detail;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
import org.tizen.emulator.manager.image.BaseImage;
import org.tizen.emulator.manager.tool.StringResource;
import org.tizen.emulator.manager.ui.MainDialog;
private VMPropertyView vmView = null;
private int[] weight = new int[] { 60, 40 };
+ // Implement a "fake" tooltip
+ final Listener labelListener = new Listener() {
+ public void handleEvent(Event event) {
+ Label label = (Label) event.widget;
+ Shell shell = label.getShell();
+ switch (event.type) {
+ case SWT.MouseDown:
+ Event e = new Event();
+ e.item = (TableItem) label.getData("_TABLEITEM");
+ // Assuming table is single select, set the selection as if
+ // the mouse down event went through to the table
+ detailTable.setSelection(new TableItem[] { (TableItem) e.item });
+ detailTable.notifyListeners(SWT.Selection, e);
+ // fall through
+ case SWT.MouseExit:
+ shell.dispose();
+ break;
+ }
+ }
+ };
+
+ Listener tableListener = new Listener() {
+ Shell tip = null;
+
+ Label label = null;
+
+ public void handleEvent(Event event) {
+ switch (event.type) {
+ case SWT.Dispose:
+ case SWT.KeyDown:
+ case SWT.MouseMove: {
+ if (tip == null)
+ break;
+ tip.dispose();
+ tip = null;
+ label = null;
+ break;
+ }
+ case SWT.MouseHover: {
+ TableItem item = detailTable.getItem(new Point(event.x, event.y));
+ if (item != null && !item.getText(2).isEmpty()) {
+ if (tip != null && !tip.isDisposed())
+ tip.dispose();
+ tip = new Shell(mainDialog.getShell(), SWT.ON_TOP | SWT.TOOL);
+ tip.setLayout(new FillLayout());
+ label = new Label(tip, SWT.NONE);
+ label.setForeground(Display.getCurrent()
+ .getSystemColor(SWT.COLOR_INFO_FOREGROUND));
+ label.setBackground(Display.getCurrent()
+ .getSystemColor(SWT.COLOR_INFO_BACKGROUND));
+ label.setData("_TABLEITEM", item);
+ label.setText(item.getText(2));
+ label.addListener(SWT.MouseExit, labelListener);
+ label.addListener(SWT.MouseDown, labelListener);
+ Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+ //Rectangle rect = item.getBounds(0);
+ Point pt = detailTable.toDisplay(event.x, event.y);
+ tip.setBounds(pt.x + 8, pt.y + 8, size.x, size.y);
+ tip.setVisible(true);
+ }
+ }
+ }
+ }
+ };
+
public DetailTableView(MainDialog mainDialog) {
this.mainDialog = mainDialog;
}
}
});
+ detailTable.addListener(SWT.Dispose, tableListener);
+ detailTable.addListener(SWT.KeyDown, tableListener);
+ detailTable.addListener(SWT.MouseMove, tableListener);
+ detailTable.addListener(SWT.MouseHover, tableListener);
+
tableColumn = new TableColumn(detailTable, SWT.NONE);
tableColumn.setText(StringResource.DETAIL);
TableColumn tableColumn2 = new TableColumn(detailTable, SWT.NONE);
tableColumn2.setText("");
+ TableColumn tableColumn3 = new TableColumn(detailTable, SWT.NONE);
+ tableColumn3.setText("");
vmView = new VMPropertyView(detailTable);
}
private boolean isCreateMode;
private TableWidgetChangeListener listener;
private TableWidget widget;
+ private String tooltip = "";
public TableWidget(String id, boolean isCreate) {
this.id = id;
this.title = title;
}
+ public String getToolTip() {
+ return tooltip;
+ }
+
+ public void setToolTip(String tooltip) {
+ this.tooltip = tooltip;
+ }
+
public boolean isCreateMode() {
return isCreateMode;
}
public GLAccelerationCombo(boolean isCreate) {
super("gl", isCreate);
- setTitle("HW GL Acceleration");
+ setTitle("GPU");
+ setToolTip("If you enable the GPU option,\n" +
+ "the rendering performance of video player or camera may degrade.");
}
public Control getWidget() {
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.tizen.emulator.manager.image.BaseImage;
ArrayList<TableItem> itemList;
ArrayList<TableWidget> createList;
ArrayList<TableWidget> modifyList;
-
+
public VMPropertyView(Table table) {
this.table = table;
makeItemList();
widget = list.get(i);
itemList.get(i).setText(0, widget.getTitle());
itemList.get(i).setText(1, widget.getValue(oldValue));
+ itemList.get(i).setText(2, widget.getToolTip());
}
}
public void detailView(VMsProperty property) {