Java Code Examples for java.beans.PropertyEditor#isPaintable()
The following examples show how to use
java.beans.PropertyEditor#isPaintable() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GenericObjectEditor.java From meka with GNU General Public License v3.0 | 6 votes |
/** * Tries to determine a view for the editor. * * @param editor the editor to get the view for * @return the view, null if failed to determine one */ public static JComponent findView(PropertyEditor editor) { JComponent result; result = null; if (editor.supportsCustomEditor() && editor.isPaintable()) { result = new PropertyPanel(editor); } else if (editor.supportsCustomEditor() && (editor.getCustomEditor() instanceof JComponent)) { result = (JComponent) editor.getCustomEditor(); } else if (editor.getTags() != null) { result = new PropertyValueSelector(editor); } else if (editor.getAsText() != null) { result = new PropertyText(editor); } return result; }
Example 2
Source File: StringInplaceEditor.java From netbeans with Apache License 2.0 | 5 votes |
@Override public void connect(PropertyEditor p, PropertyEnv env) { setActionCommand(COMMAND_SUCCESS); this.env = env; if(PropUtils.supportsValueIncrement( env ) ) { PropUtils.wrapUpDownArrowActions( this, this ); } if (editor == p) { return; } editor = p; boolean editable = PropUtils.checkEnabled(this, p, env); setEnabled(editable); //Undocumented, but in NB 3.5 and earlier, getAsText() returning null for //paintable editors was yet another way to disable a property editor if ((p.getTags() == null) && (p.getAsText() == null) && p.isPaintable()) { editable = false; } setEditable(editable); reset(); added = false; }
Example 3
Source File: RendererFactory.java From netbeans with Apache License 2.0 | 5 votes |
private JComponent prepareString(PropertyEditor editor, PropertyEnv env) { InplaceEditor ren = (tableUI || editor.isPaintable()) ? (InplaceEditor) stringRenderer() : (InplaceEditor) textFieldRenderer(); ren.clear(); ren.getComponent().setEnabled(true); ren.connect(editor, env); return ren.getComponent(); }
Example 4
Source File: PropertyEditorCellRenderer.java From pentaho-reporting with GNU Lesser General Public License v2.1 | 5 votes |
protected void paintComponent( final Graphics g ) { final PropertyEditor propertyEditor = getPropertyEditor(); if ( propertyEditor == null ) { return; } if ( propertyEditor.isPaintable() == false ) { return; } propertyEditor.paintValue( g, new Rectangle( 0, 0, getWidth(), getHeight() ) ); }
Example 5
Source File: SheetTable.java From netbeans with Apache License 2.0 | 4 votes |
/** Returns true if a mouse event occured over the custom editor button. * This is used to supply button specific tooltips and launch the custom * editor without needing to instantiate a real button */ private boolean onCustomEditorButton(MouseEvent e) { //see if we're in the approximate bounds of the custom editor button Point pt = e.getPoint(); int row = rowAtPoint(pt); int col = columnAtPoint(pt); FeatureDescriptor fd = getSheetModel().getPropertySetModel().getFeatureDescriptor(row); if( null == fd ) { //prevent NPE when the activated Node has been destroyed and a new one hasn't been set yet return false; } //see if the event happened over the custom editor button boolean success; if (PropUtils.noCustomButtons) { //#41412 - impossible to invoke custom editor on props w/ no inline //edit mode if the no custom buttons switch is set success = false; } else { success = e.getX() > (getWidth() - PropUtils.getCustomButtonWidth()); } //if it's a mouse button event, then we're not showing a tooltip, we're //deciding if we should display a custom editor. For read-only props that //support one, we should return true, since clicking the non-editable cell //is not terribly useful. if ( (e.getID() == MouseEvent.MOUSE_PRESSED) || (e.getID() == MouseEvent.MOUSE_RELEASED) || (e.getID() == MouseEvent.MOUSE_CLICKED) ) { //We will show the custom editor for any click on the text value //of a property that looks editable but sets canEditAsText to false - //the click means the user is trying to edit something, so to just //swallow the gesture is confusing success |= Boolean.FALSE.equals(fd.getValue("canEditAsText")); if (!success && fd instanceof Property) { PropertyEditor pe = PropUtils.getPropertyEditor((Property) fd); if ((pe != null) && pe.supportsCustomEditor()) { //Undocumented but used in Studio - in NB 3.5 and earlier, returning null from getAsText() //was a way to make a property non-editable success |= (pe.isPaintable() && (pe.getAsText() == null) && (pe.getTags() == null)); } } } try { if (success) { //NOI18N if (fd instanceof Property && (col == 1)) { boolean supp = PropUtils.getPropertyEditor((Property) fd).supportsCustomEditor(); return (supp); } } } catch (IllegalStateException ise) { //See bugtraq 4941073 - if a property accessed via Reflection throws //an unexpected exception (try customize bean on a vanilla GenericServlet //to produce this) when the getter is accessed, then we are already //displaying "Error fetching property value" in the value area of //the propertysheet. No point in distracting the user with a //stack trace - it's not our bug. Logger.getLogger(SheetTable.class.getName()).log(Level.WARNING, null, ise); } return false; }
Example 6
Source File: RendererFactory.java From netbeans with Apache License 2.0 | 4 votes |
/** Get a renderer component appropriate to a given property */ public JComponent getRenderer(Property prop) { mdl.setProperty(prop); env.reset(); PropertyEditor editor = preparePropertyEditor(mdl, env); if (editor instanceof ExceptionPropertyEditor) { return getExceptionRenderer((Exception) editor.getValue()); } JComponent result = null; try { if (editor.isPaintable()) { result = prepareString(editor, env); } else { Class c = mdl.getPropertyType(); if ((c == Boolean.class) || (c == boolean.class)) { //Special handling for hinting for org.netbeans.beaninfo.BoolEditor boolean useRadioRenderer = useRadioBoolean || (env.getFeatureDescriptor().getValue("stringValues") != null); //NOI18N if (useRadioRenderer) { result = prepareRadioButtons(editor, env); } else { result = prepareCheckbox(editor, env); } } else if (editor.getTags() != null) { String[] s = editor.getTags(); boolean editAsText = Boolean.TRUE.equals(prop.getValue("canEditAsText")); if ((s.length <= radioButtonMax) && !editAsText) { result = prepareRadioButtons(editor, env); } else { result = prepareCombobox(editor, env); } } else { result = prepareString(editor, env); } } if ((result != radioRenderer) && (result != textFieldRenderer)) { if ((result != checkboxRenderer) && tableUI && !(result instanceof JComboBox)) { result.setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 0)); } else if ((result instanceof JComboBox) && tableUI) { result.setBorder(BorderFactory.createEmptyBorder()); } else if (!(result instanceof JComboBox) && (!(result instanceof JCheckBox))) { result.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); } } } catch (Exception e) { result = getExceptionRenderer(e); Logger.getLogger(RendererFactory.class.getName()).log(Level.WARNING, null, e); } result.setEnabled(prop.canWrite()); boolean propRequestsSuppressButton = Boolean.TRUE.equals(prop.getValue("suppressCustomEditor")); //NOI18N if ( !(result instanceof JLabel) && ((env.getState() == ReusablePropertyEnv.STATE_INVALID) || (prop.getValue("valueIcon") != null)) ) { //NOI18N result = prepareIconPanel(editor, env, (InplaceEditor) result); } /* If we need a custom editor button, embed the resulting component in an instance of ButtonPanel and return that */ if ( editor.supportsCustomEditor() && !PropUtils.noCustomButtons && !suppressButton && !propRequestsSuppressButton ) { ButtonPanel bp = buttonPanel(); bp.setInplaceEditor((InplaceEditor) result); result = bp; } return result; }