下面列出了org.eclipse.swt.widgets.Widget#getData ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void widgetSelected(SelectionEvent e) {
// An item is selected
Widget item = e.item;
if (item.getData(LAST_ITEM_LOADED) != null) {
// The selected item must load another page.
PageableController controller = super.getController(e.widget);
if (controller.hasNextPage()) {
// There is next page, increment the current page of the
// controller
controller.setCurrentPage(controller.getCurrentPage() + 1);
}
// Set as null the LAST_ITEM_LOADED flag to avoid loading data when
// the item is selected (data is already loaded).
item.setData(LAST_ITEM_LOADED, null);
}
}
private void virtualMaterializeItem(CTreeComboItem treeItem) {
if (treeItem.getData() != null) {
// already materialized
return;
}
if (!contentProviderIsLazy) {
return;
}
int index;
Widget parent = treeItem.getParentItem();
if (parent == null) {
parent = treeItem.getParent();
}
Object parentElement = parent.getData();
if (parentElement != null) {
if (parent instanceof CTreeCombo) {
index = ((CTreeCombo) parent).indexOf(treeItem);
} else {
index = ((CTreeComboItem) parent).indexOf(treeItem);
}
virtualLazyUpdateWidget(parent, index);
}
}
/**
* @see org.eclipse.jface.viewers.StructuredViewer#mapElement(java.lang.Object, org.eclipse.swt.widgets.Widget)
*/
protected void mapElement(Object element, final Widget item) {
super.mapElement(element, item);
// make sure to unmap elements if the tree is virtual
if ((getTree().getStyle() & SWT.VIRTUAL) != 0) {
// only add a dispose listener if item hasn't already on assigned
// because it is reused
if (item.getData(VIRTUAL_DISPOSE_KEY) == null) {
item.setData(VIRTUAL_DISPOSE_KEY, Boolean.TRUE);
item.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
if (!treeIsDisposed) {
Object data = item.getData();
if (usingElementMap() && data != null) {
unmapElement(data, item);
}
}
}
});
}
}
}
/**
* Update the widget at index.
*
* @param widget
* @param index
*/
private void virtualLazyUpdateWidget(Widget widget, int index) {
boolean oldBusy = isBusy();
setBusy(false);
try {
if (contentProviderIsTreeBased) {
TreePath treePath;
if (widget instanceof Item) {
if (widget.getData() == null) {
return;
}
treePath = getTreePathFromItem((Item) widget);
} else {
treePath = TreePath.EMPTY;
}
((ILazyTreePathContentProvider) getContentProvider()).updateElement(treePath, index);
} else {
((ILazyTreeContentProvider) getContentProvider()).updateElement(widget.getData(), index);
}
} finally {
setBusy(oldBusy);
}
}
protected void handleMemberSelect(Widget item) {
Object data = null;
if (item != null)
data = item.getData();
if (data instanceof ICompilationUnit) {
this.currentCU = (ICompilationUnit) data;
problemsPane.setImage(CompareUI.getImage(this.currentCU.getResource()));
String pattern = "Problems in file {0}";
String title = MessageFormat.format(pattern, new Object[] { this.currentCU.getResource().getName() });
problemsPane.setText(title);
if (problemsTable != null) {
problemsTable.setRedraw(false);
problemsTable.removeAll();
ConversionResult conversionResult = input.get(currentCU);
for (String problem : conversionResult.getProblems()) {
addProblemItem(problem);
}
problemsTable.setRedraw(true);
}
} else
this.currentCU = null;
}
/**
* @see org.eclipse.jface.viewers.AbstractTreeViewer#createChildren(org.eclipse.swt.widgets.Widget)
*/
protected void createChildren(Widget widget) {
if (contentProviderIsLazy) {
Object element = widget.getData();
if (element == null && widget instanceof CTreeComboItem) {
// parent has not been materialized
virtualMaterializeItem((CTreeComboItem) widget);
// try getting the element now that updateElement was called
element = widget.getData();
}
if (element == null) {
// give up because the parent is still not materialized
return;
}
Item[] children = getChildren(widget);
if (children.length == 1 && children[0].getData() == null) {
// found a dummy node
virtualLazyUpdateChildCount(widget, children.length);
children = getChildren(widget);
}
// touch all children to make sure they are materialized
for (int i = 0; i < children.length; i++) {
if (children[i].getData() == null) {
virtualLazyUpdateWidget(widget, i);
}
}
return;
}
super.createChildren(widget);
}
public static VControl getVControl(Widget widget) {
if(widget instanceof Shell) {
Control[] ca = ((Shell) widget).getTabList();
if(ca.length > 0) {
widget = ca[0];
}
}
Object o = widget.getData("cwt_vcontrol");
if(o instanceof VControl) {
return (VControl) o;
}
return null;
}
protected ViewerRow getViewerRowFromItem(Widget item) {
ViewerRow part = (ViewerRow) item.getData(ViewerRow.ROWPART_KEY);
if (part == null) {
part = new CTreeViewerRow(((CTreeItem) item));
}
return part;
}
protected ViewerRow getViewerRowFromItem(Widget item) {
ViewerRow part = (ViewerRow) item.getData(ViewerRow.ROWPART_KEY);
if (part == null) {
part = new GridViewerRow(((GridItem) item));
}
return part;
}
/**
* Returns the tree path for the given item.
* from abstracttreeviewer
* @since 3.2
*/
protected TreePath getTreePathFromItem(Widget item) {
LinkedList segments = new LinkedList();
while(item!=null) {
Object segment = item.getData();
Assert.isNotNull(segment);
segments.addFirst(segment);
item = ((CTableTreeItem) item).getParentItem();
}
return new TreePath(segments.toArray());
}
protected void associate(Object element, Widget item) {
Object data = item.getData();
if (data != element) {
if (data != null) {
disassociate(item);
}
item.setData(element);
}
// Always map the element, even if data == element,
// since unmapAllElements() can leave the map inconsistent
// See bug 2741 for details.
mapElement(element, item);
}
protected List getSelectionFromWidget() {
Widget[] items = container.getSelection();
ArrayList list = new ArrayList(items.length);
for (int i = 0; i < items.length; i++) {
Widget item = items[i];
Object e = item.getData();
if (e != null)
list.add(e);
}
return list;
}
protected void disassociate(Widget item) {
Object element = item.getData();
Assert.isNotNull(element);
//Clear the map before we clear the data
unmapElement(element, item);
item.setData(null);
}
protected void controlChanged(Widget widget) {
ControlData data = (ControlData) widget.getData();
String newValue = null;
if (widget instanceof Button) {
newValue = data.getValue(((Button) widget).getSelection());
} else if (widget instanceof Combo) {
newValue = data.getValue(((Combo) widget).getSelectionIndex());
} else {
return;
}
String oldValue = setValue(data.getKey(), newValue);
validateSettings(data.getKey(), oldValue, newValue);
}
public void widgetSelected( SelectionEvent e )
{
Widget widget = e.widget;
if ( widget instanceof MenuItem )
{
String exprType = (String) widget.getData( );
provider.handleSelectionEvent( exprType );
refresh( );
}
else if ( widget instanceof MenuButton )
{
provider.handleSelectionEvent( getExpressionType( ) );
}
}
protected void controlChanged(Widget widget) {
ControlData data = (ControlData) widget.getData();
String newValue = null;
if (widget instanceof Button) {
newValue = data.getValue(((Button) widget).getSelection());
} else if (widget instanceof Combo) {
newValue = data.getValue(((Combo) widget).getSelectionIndex());
} else {
return;
}
String oldValue = setValue(data.getKey(), newValue);
reconcileControls();
validateSettings(data.getKey(), oldValue, newValue);
}
protected void controlChanged(Widget widget) {
ControlData data= (ControlData) widget.getData();
String newValue= null;
if (widget instanceof Button) {
newValue= data.getValue(((Button)widget).getSelection());
} else if (widget instanceof Combo) {
newValue= data.getValue(((Combo)widget).getSelectionIndex());
} else {
return;
}
String oldValue= setValue(data.getKey(), newValue);
validateSettings(data.getKey(), oldValue, newValue);
}
public void widgetSelected( SelectionEvent e )
{
Widget widget = e.widget;
if ( widget instanceof MenuItem )
{
String exprType = (String) widget.getData( );
provider.handleSelectionEvent( exprType );
refresh( );
}
if ( widget instanceof MenuButton )
{
provider.handleSelectionEvent( ( (MenuButtonProvider) provider ).getDefaultOptionType( ) );
}
}
protected void controlChanged( Widget widget )
{
ControlData data = (ControlData) widget.getData( );
String newValue = null;
if ( widget instanceof Button )
{
if ( ( ( (Button) widget ).getStyle( ) & SWT.RADIO ) != 0 )
{
RadioComposite parent = (RadioComposite) ( (Button) widget ).getParent( );
data = (ControlData) parent.getData( );
newValue = data.getValue( parent.getBtnIndex( (Button) widget ) );
}
else
{
newValue = data.getValue( ( (Button) widget ).getSelection( ) );
}
}
else if ( widget instanceof Combo )
{
newValue = data.getValue( ( (Combo) widget ).getSelectionIndex( ) );
}
else
{
return;
}
String oldValue = setValue( data.getKey( ), newValue );
validateSettings( data.getKey( ), oldValue, newValue );
}
protected void setExpressionCellEditorProvider(
IExpressionCellEditorProvider provider )
{
if ( provider != null && provider != this.provider )
{
this.provider = provider;
provider.setInput( this );
for ( int i = 0; i < menu.getItemCount( ); i++ )
{
menu.getItem( i ).dispose( );
i--;
}
String[] types = this.provider.getExpressionTypes( );
listener = new SelectionAdapter( ) {
public void widgetSelected( SelectionEvent e )
{
Widget widget = e.widget;
if ( widget instanceof MenuItem )
{
String exprType = (String) widget.getData( );
ExpressionCellEditor.this.provider.handleSelectionEvent( exprType );
}
else if ( widget instanceof Button )
{
ExpressionCellEditor.this.provider.handleSelectionEvent( getExpressionType( ) );
}
}
};
for ( int i = 0; i < types.length; i++ )
{
MenuItem item = new MenuItem( menu, SWT.CHECK );
item.setText( this.provider.getText( types[i] ) );
item.setData( types[i] );
item.addSelectionListener( listener );
}
if ( menu.getItemCount( ) <= 1 )
{
menu = null;
button.addSelectionListener( listener );
}
refresh( );
}
}