JComponent () { if (myProject == null) { myProject = JavaDebuggerSupport.getContextProjectForEditorFieldsInDebuggerConfigurables(); } final JPanel panel = new JPanel(new GridBagLayout()); myCbAutoscroll = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.autoscroll")); myCbDfaAssist = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.dfa.assist")); myCbDfaAssistGrayOut = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.dfa.assist.gray.out")); myCbShowSyntheticFields = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.synthetic.fields")); myCbShowValFieldsAsLocalVariables = new StateRestoringCheckBox( JavaDebuggerBundle.message("label.base.renderer.configurable.show.val.fields.as.locals")); myCbHideNullArrayElements = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.hide.null.array.elements")); myCbShowStatic = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.static.fields")); myCbShowStaticFinalFields = new StateRestoringCheckBox( JavaDebuggerBundle.message("label.base.renderer.configurable.show.static.final.fields")); myCbEnableAlternateViews = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.alternate.view")); myCbShowStatic.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { if (myCbShowStatic.isSelected()) { myCbShowStaticFinalFields.makeSelectable(); } else { myCbShowStaticFinalFields.makeUnselectable(false); } } }); myCbShowSyntheticFields.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { if (myCbShowSyntheticFields.isSelected()) { myCbShowValFieldsAsLocalVariables.makeSelectable(); } else { myCbShowValFieldsAsLocalVariables.makeUnselectable(false); } } }); myCbShowDeclaredType = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.declared.type")); myCbShowFQNames = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.fq.names")); myCbShowObjectId = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.object.id")); myCbHexValue = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.hex.value")); myCbShowStringsType = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.show.strings.type")); myCbPopulateThrowableStack = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.populate.throwable.stack")); myCbEnableToString = new JCheckBox(JavaDebuggerBundle.message("label.base.renderer.configurable.enable.toString")); myRbAllThatOverride = new JRadioButton(JavaDebuggerBundle.message("label.base.renderer.configurable.all.overriding")); myRbFromList = new JRadioButton(JavaDebuggerBundle.message("label.base.renderer.configurable.classes.from.list")); ButtonGroup group = new ButtonGroup(); group.add(myRbAllThatOverride); group.add(myRbFromList); myToStringFilterEditor = new ClassFilterEditor(myProject, null, "reference.viewBreakpoints.classFilters.newPattern"); myCbEnableToString.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { final boolean enabled = myCbEnableToString.isSelected(); myRbAllThatOverride.setEnabled(enabled); myRbFromList.setEnabled(enabled); myToStringFilterEditor.setEnabled(enabled && myRbFromList.isSelected()); } }); myRbFromList.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { myToStringFilterEditor.setEnabled(myCbEnableToString.isSelected() && myRbFromList.isSelected()); } }); panel.add(myCbAutoscroll, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insetsTop(4), 0, 0)); panel.add(myCbDfaAssist, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insetsTop(4), 0, 0)); panel.add(myCbDfaAssistGrayOut, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insetsTop(4), 0, 0)); final JPanel showPanel = new JPanel(new GridBagLayout()); showPanel.setBorder(IdeBorderFactory.createTitledBorder(JavaDebuggerBundle.message("debugger.data.views.configurable.show.title"))); showPanel.add(myCbShowDeclaredType, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBInsets.emptyInsets(), 0, 0)); showPanel.add(myCbShowObjectId, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insetsTop(4), 0, 0)); showPanel.add(myCbShowSyntheticFields, new GridBagConstraints(1, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insetsLeft(10), 0, 0)); showPanel.add(myCbShowStatic, new GridBagConstraints(1, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insets(4, 10, 0, 0), 0, 0)); showPanel.add(myCbShowValFieldsAsLocalVariables, new GridBagConstraints(2, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insetsLeft(10), 0, 0)); showPanel.add(myCbShowStaticFinalFields, new GridBagConstraints(2, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insets(4, 10, 0, 0), 0, 0)); showPanel.add(myCbShowFQNames, new GridBagConstraints(3, RELATIVE, 1, 1, 1.0, 0.0, WEST, NONE, JBUI.insetsLeft(10), 0, 0)); panel.add(showPanel, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, WEST, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); //final JPanel arraysPanel = new JPanel(new BorderLayout(0, UIUtil.DEFAULT_VGAP)); //final JComponent arraysComponent = myArrayRendererConfigurable.createComponent(); //assert arraysComponent != null; //arraysPanel.add(arraysComponent, BorderLayout.CENTER); //arraysPanel.add(myCbHideNullArrayElements, BorderLayout.SOUTH); //arraysPanel.setBorder(IdeBorderFactory.createTitledBorder("Arrays", true)); //panel.add(arraysPanel, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 3, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); panel.add(myCbShowStringsType, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBInsets.emptyInsets(), 0, 0)); panel.add(myCbHexValue, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); panel.add(myCbHideNullArrayElements, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); panel.add(myCbPopulateThrowableStack, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); panel.add(myCbEnableAlternateViews, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insets(4, 0, 0, 10), 0, 0)); // starting 4-th row panel.add(myCbEnableToString, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, WEST, NONE, JBUI.insetsTop(4), 0, 0)); panel.add(myRbAllThatOverride, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, WEST, NONE, JBUI.insetsLeft(12), 0, 0)); panel.add(myRbFromList, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, WEST, NONE, JBUI.insetsLeft(12), 0, 0)); myToStringFilterEditor.setMinimumSize(JBUI.size(50, 100)); panel.add(myToStringFilterEditor, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 1.0, CENTER, BOTH, JBUI.insetsLeft(12), 0, 0)); return panel; }