private void updateEnabledState() { myLabelEditor.setEnabled(myRbExpressionLabel.isSelected()); final boolean isChildrenExpression = myRbExpressionChildrenRenderer.isSelected(); myChildrenExpandedEditor.setEnabled(isChildrenExpression); myExpandedLabel.setEnabled(isChildrenExpression); myChildrenEditor.setEnabled(isChildrenExpression); myChildrenListEditor.setEnabled(myRbListChildrenRenderer.isSelected()); }
public void reset() { final TextWithImports emptyExpressionFragment = new TextWithImportsImpl(CodeFragmentKind.EXPRESSION, ""); ((CardLayout) myMainPanel.getLayout()) .show(myMainPanel, myRenderer == null ? EMPTY_PANEL_ID : DATA_PANEL_ID); if (myRenderer == null) { return; } final String className = myRenderer.getClassName(); myClassNameField.setText(className); final ValueLabelRenderer labelRenderer = myRenderer.getLabelRenderer(); final ChildrenRenderer childrenRenderer = myRenderer.getChildrenRenderer(); final NodeRendererSettings rendererSettings = NodeRendererSettings.getInstance(); if (rendererSettings.isBase(labelRenderer)) { myRbDefaultLabel.setSelected(true); myLabelEditor.setText(emptyExpressionFragment); } else { myRbExpressionLabel.setSelected(true); myLabelEditor.setText(((LabelRenderer) labelRenderer).getLabelExpression()); } if (rendererSettings.isBase(childrenRenderer)) { myRbDefaultChildrenRenderer.setSelected(true); myChildrenEditor.setText(emptyExpressionFragment); myChildrenExpandedEditor.setText(emptyExpressionFragment); getTableModel().clear(); } else if (childrenRenderer instanceof ExpressionChildrenRenderer) { myRbExpressionChildrenRenderer.setSelected(true); final ExpressionChildrenRenderer exprRenderer = (ExpressionChildrenRenderer) childrenRenderer; myChildrenEditor.setText(exprRenderer.getChildrenExpression()); myChildrenExpandedEditor.setText(exprRenderer.getChildrenExpandable()); getTableModel().clear(); } else { myRbListChildrenRenderer.setSelected(true); myChildrenEditor.setText(emptyExpressionFragment); myChildrenExpandedEditor.setText(emptyExpressionFragment); if (childrenRenderer instanceof EnumerationChildrenRenderer) { getTableModel().init(((EnumerationChildrenRenderer) childrenRenderer).getChildren()); } else { getTableModel().clear(); } } updateEnabledState(); updateContext(className); }
private void flushDataTo(final CompoundReferenceRenderer renderer) { // label LabelRenderer labelRenderer = null; if (myRbExpressionLabel.isSelected()) { labelRenderer = new LabelRenderer(); labelRenderer.setLabelExpression(myLabelEditor.getText()); } renderer.setLabelRenderer(labelRenderer); // children ChildrenRenderer childrenRenderer = null; if (myRbExpressionChildrenRenderer.isSelected()) { childrenRenderer = new ExpressionChildrenRenderer(); ((ExpressionChildrenRenderer) childrenRenderer) .setChildrenExpression(myChildrenEditor.getText()); ((ExpressionChildrenRenderer) childrenRenderer) .setChildrenExpandable(myChildrenExpandedEditor.getText()); } else if (myRbListChildrenRenderer.isSelected()) { childrenRenderer = new EnumerationChildrenRenderer(getTableModel().getExpressions()); } renderer.setChildrenRenderer(childrenRenderer); // classname renderer.setClassName(myClassNameField.getText()); }
public JComponent createComponent() { final JPanel panel = new JPanel(new GridBagLayout()); myClassNameField = new TextFieldWithBrowseButton( new ActionListener() { public void actionPerformed(ActionEvent e) { PsiClass psiClass = DebuggerUtils.getInstance() .chooseClassDialog( DebuggerBundle.message( "title.compound.renderer.configurable.choose.renderer.reference.type"), myProject); if (psiClass != null) { myClassNameField.setText(JVMNameUtil.getNonAnonymousClassName(psiClass)); } } }); myClassNameField .getTextField() .addFocusListener( new FocusAdapter() { public void focusLost(FocusEvent e) { final String qName = myClassNameField.getText(); updateContext(qName); } }); myRbDefaultLabel = new JRadioButton( DebuggerBundle.message("label.compound.renderer.configurable.use.default.renderer")); myRbExpressionLabel = new JRadioButton( DebuggerBundle.message("label.compound.renderer.configurable.use.expression")); final ButtonGroup labelButtonsGroup = new ButtonGroup(); labelButtonsGroup.add(myRbDefaultLabel); labelButtonsGroup.add(myRbExpressionLabel); myRbDefaultChildrenRenderer = new JRadioButton( DebuggerBundle.message("label.compound.renderer.configurable.use.default.renderer")); myRbExpressionChildrenRenderer = new JRadioButton( DebuggerBundle.message("label.compound.renderer.configurable.use.expression")); myRbListChildrenRenderer = new JRadioButton( DebuggerBundle.message("label.compound.renderer.configurable.use.expression.list")); final ButtonGroup childrenButtonGroup = new ButtonGroup(); childrenButtonGroup.add(myRbDefaultChildrenRenderer); childrenButtonGroup.add(myRbExpressionChildrenRenderer); childrenButtonGroup.add(myRbListChildrenRenderer); myLabelEditor = new DebuggerExpressionTextField(myProject, null, "ClassLabelExpression"); myChildrenEditor = new DebuggerExpressionTextField(myProject, null, "ClassChildrenExpression"); myChildrenExpandedEditor = new DebuggerExpressionTextField(myProject, null, "ClassChildrenExpression"); myChildrenListEditor = createChildrenListEditor(); final ItemListener updateListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { updateEnabledState(); } }; myRbExpressionLabel.addItemListener(updateListener); myRbListChildrenRenderer.addItemListener(updateListener); myRbExpressionChildrenRenderer.addItemListener(updateListener); panel.add( new JLabel(DebuggerBundle.message("label.compound.renderer.configurable.apply.to")), new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); panel.add( myClassNameField, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(4, 0, 0, 0), 0, 0)); panel.add( new JLabel(DebuggerBundle.message("label.compound.renderer.configurable.when.rendering")), new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(20, 0, 0, 0), 0, 0)); panel.add( myRbDefaultLabel, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0)); panel.add( myRbExpressionLabel, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0)); panel.add( myLabelEditor, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 30, 0, 0), 0, 0)); panel.add( new JLabel(DebuggerBundle.message("label.compound.renderer.configurable.when.expanding")), new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(20, 0, 0, 0), 0, 0)); panel.add( myRbDefaultChildrenRenderer, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0)); panel.add( myRbExpressionChildrenRenderer, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0)); panel.add( myChildrenEditor, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 30, 0, 0), 0, 0)); myExpandedLabel = new JLabel(DebuggerBundle.message("label.compound.renderer.configurable.test.can.expand")); panel.add( myExpandedLabel, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(4, 30, 0, 0), 0, 0)); panel.add( myChildrenExpandedEditor, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 30, 0, 0), 0, 0)); panel.add( myRbListChildrenRenderer, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 10, 0, 0), 0, 0)); panel.add( myChildrenListEditor, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(4, 30, 0, 0), 0, 0)); myMainPanel = new JPanel(new CardLayout()); myMainPanel.add(new JPanel(), EMPTY_PANEL_ID); myMainPanel.add(panel, DATA_PANEL_ID); return myMainPanel; }