提交 f84620a2 编写于 作者: S Serge Rider

MEtaData panel - visualize hidden attributes

上级 330097c5
......@@ -30,6 +30,7 @@ import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
......@@ -677,8 +678,15 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl
* @return image or null
*/
@Nullable
protected DBPImage getObjectImage(OBJECT_TYPE item)
{
protected DBPImage getObjectImage(OBJECT_TYPE item) {
return null;
}
protected Color getObjectBackground(OBJECT_TYPE item) {
return null;
}
protected Color getObjectForeground(OBJECT_TYPE item) {
return null;
}
......@@ -905,6 +913,15 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl
return ObjectViewerRenderer.getCellString(cellValue, columnIndex == 0);
}
@Override
public Color getBackground(Object element) {
return getObjectBackground((OBJECT_TYPE) element);
}
@Override
public Color getForeground(Object element) {
return getObjectForeground((OBJECT_TYPE) element);
}
}
public class ObjectsLoadVisualizer extends ProgressVisualizer<Collection<OBJECT_TYPE>> {
......
......@@ -23,6 +23,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.jkiss.code.Nullable;
......@@ -89,7 +90,7 @@ public class MetaDataPanel implements IResultSetPanel {
if (!selection.isEmpty()) {
DBDAttributeBinding attr = (DBDAttributeBinding) selection.getFirstElement();
if (attr != null) {
if (presentation.getController().getModel().getVisibleAttributes().contains(attr)) {
if (isAttributeVisible(attr)) {
presentation.setCurrentAttribute(attr);
}
}
......@@ -100,6 +101,10 @@ public class MetaDataPanel implements IResultSetPanel {
return this.attributeList;
}
private boolean isAttributeVisible(DBDAttributeBinding attr) {
return presentation.getController().getModel().getVisibleAttributes().contains(attr);
}
@Override
public void activatePanel() {
refresh();
......@@ -166,6 +171,14 @@ public class MetaDataPanel implements IResultSetPanel {
return DBUtils.getTypeImage(item.getMetaAttribute());
}
@Override
protected Color getObjectForeground(DBDAttributeBinding item) {
if (!isAttributeVisible(item)) {
return presentation.getControl().getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
}
return super.getObjectForeground(item);
}
@Override
protected LoadingJob<Collection<DBDAttributeBinding>> createLoadService() {
return LoadingJob.createService(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册