@Override protected void doProcessMetaDataChange(MenuButtonModel widget, MetaData metaData) { if (metaData != null) { switch (metaData.getAccessType()) { case NONE: widget.setPropertyValue( AbstractWidgetModel.PROP_CURSOR, CursorService.getInstance().availableCursors().get(7)); break; case READ: widget.setPropertyValue( AbstractWidgetModel.PROP_CURSOR, CursorService.getInstance().availableCursors().get(7)); break; case READ_WRITE: widget.setPropertyValue( AbstractWidgetModel.PROP_CURSOR, CursorService.getInstance().availableCursors().get(0)); break; case WRITE: widget.setPropertyValue( AbstractWidgetModel.PROP_CURSOR, CursorService.getInstance().availableCursors().get(0)); break; default: widget.setPropertyValue( AbstractWidgetModel.PROP_CURSOR, CursorService.getInstance().availableCursors().get(0)); } } }
/** * Tries to find a cursor for the specified id. * * @param cursorId the cursor id * @return a cursor or null if none was found */ public static Cursor getCursor(String cursorId) { // find the descriptor for the specified cursor id AbstractCursor d = CursorService.getInstance().findCursor(cursorId); Cursor cursor = null; if (d != null) { if (d == ICursorService.SYSTEM_DEFAULT_CURSOR) { cursor = null; } else if (d instanceof SWTCursor) { cursor = new Cursor(Display.getCurrent(), ((SWTCursor) d).getSWTCursor()); } else if (d instanceof ContributedCursor) { ContributedCursor cc = (ContributedCursor) d; ImageData imageData = ImageUtil.getInstance().getImage(cc.getBundle(), cc.getImage()).getImageData(); cursor = new Cursor(Display.getCurrent(), imageData, 1, 1); } else if (d instanceof WorkspaceCursor) { WorkspaceCursor wc = (WorkspaceCursor) d; ImageData imageData = ImageUtil.getInstance().getImageDescriptorFromFile(wc.getGraphicsFile()).getImageData(); cursor = new Cursor(Display.getCurrent(), imageData, 1, 1); } else { LOG.warn("Unknown cursor type: " + d.getClass()); cursor = null; } } return cursor; }