gtablecontentproviderom.java

来自「SANCHO」· Java 代码 · 共 110 行

JAVA
110
字号
/* * Copyright (C) 2004-2005 Rutger M. Ovidius for use with the sancho project. * See LICENSE.txt for license information. */package sancho.view.viewer.table;import sancho.utility.ObjectMap;import sancho.view.viewer.GView;public abstract class GTableContentProviderOM extends GTableContentProvider {  protected boolean updateOnUpdate;  public GTableContentProviderOM(GView gView) {    super(gView);  }  public Object[] getElements(Object inputElement) {    if (inputElement instanceof ObjectMap) {      synchronized (inputElement) {        ObjectMap objectMap = (ObjectMap) inputElement;        objectMap.clearAllLists();        return objectMap.getKeyArray();      }    } else      return EMPTY_ARRAY;  }  public void setActive(boolean b) {    if (b && needsRefresh) {      Object o = gView.getViewer().getInput();      if (o != null && o instanceof ObjectMap)        updateHeaderLabel(((ObjectMap) o).size());    }    super.setActive(b);  }  public void setVisible(boolean b) {    if (b && needsRefresh) {      Object o = gView.getViewer().getInput();      if (o != null && o instanceof ObjectMap)        updateHeaderLabel(((ObjectMap) o).size());    }    super.setVisible(b);  }  public void updateViewer(final ObjectMap objectMap, final int type, final boolean fullRefresh) {    if (gView == null || gView.isDisposed())      return;    if (!gView.isActive() || !gView.isVisible()) {      needsRefresh = true;      return;    }    gView.getTable().getDisplay().asyncExec(new Runnable() { // TODO; sync      public void run() {        if ((gView == null) || gView.isDisposed())          return;        if (fullRefresh) {          synchronized (objectMap) {            tableViewer.refresh();            objectMap.clearAllLists();          }          updateHeaderLabel(objectMap.size());          return;        }        switch (type) {          case ObjectMap.REMOVED :            if (objectMap.removed()) {              synchronized (objectMap) {                tableViewer.remove(objectMap.getRemovedArray());                objectMap.clearRemoved();              }              updateHeaderLabel(objectMap.size());            }            break;          case ObjectMap.ADDED :            if (objectMap.added()) {              synchronized (objectMap) {                tableViewer.add(objectMap.getAddedArray());                objectMap.clearAdded();              }              updateHeaderLabel(objectMap.size());            }            break;          case ObjectMap.UPDATED :            if (objectMap.updated()) {              synchronized (objectMap) {                tableViewer.update(objectMap.getUpdatedArray(), null);                objectMap.clearUpdated();              }              if (updateOnUpdate)                updateHeaderLabel(objectMap.size());            }            break;        }      }    });  }  protected abstract void updateHeaderLabel(int size);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?