This is an automated email from the ASF dual-hosted git repository.
mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 6bbb039b52 Improve inline-hints settings, add keybinding, disable by
default.
new a9aeefafc0 Merge pull request #6561 from mbien/inline-hint-hotkeys
6bbb039b52 is described below
commit 6bbb039b5277dab7dccd3111a0690d96e39f12e9
Author: Michael Bien <[email protected]>
AuthorDate: Thu Oct 12 13:46:16 2023 +0200
Improve inline-hints settings, add keybinding, disable by default.
- inline hints options can now toggle the global on/off state too
- fixed issue when user enabled inline hints but nothing happened
since all individual options were disabled
- added keybinding
- disabled by default as discussed previously
---
.../editor/actions/ShowInlineHintsAction.java | 2 +-
.../modules/editor/lib2/view/DocumentViewOp.java | 11 +-
.../editor/resources/NetBeans-keybindings.xml | 1 +
.../modules/java/editor/options/Bundle.properties | 1 +
.../java/editor/options/InlineHintsPanel.form | 67 ++++++----
.../java/editor/options/InlineHintsPanel.java | 143 ++++++++++++---------
.../java/editor/options/InlineHintsSettings.java | 23 +++-
7 files changed, 150 insertions(+), 98 deletions(-)
diff --git
a/ide/editor.actions/src/org/netbeans/modules/editor/actions/ShowInlineHintsAction.java
b/ide/editor.actions/src/org/netbeans/modules/editor/actions/ShowInlineHintsAction.java
index 046569d935..a97a8efeaa 100644
---
a/ide/editor.actions/src/org/netbeans/modules/editor/actions/ShowInlineHintsAction.java
+++
b/ide/editor.actions/src/org/netbeans/modules/editor/actions/ShowInlineHintsAction.java
@@ -29,7 +29,7 @@ import org.netbeans.api.editor.EditorActionRegistration;
preferencesDefault=ShowInlineHintsAction.DEF_LINES)
public class ShowInlineHintsAction extends AbstractAction {
public static final String KEY_LINES = "enable.inline.hints";
- public static final boolean DEF_LINES = true;
+ public static final boolean DEF_LINES = false;
@Override
public void actionPerformed(ActionEvent e) {
}
diff --git
a/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/view/DocumentViewOp.java
b/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/view/DocumentViewOp.java
index a1e412ab23..2bad2bfe09 100644
---
a/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/view/DocumentViewOp.java
+++
b/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/view/DocumentViewOp.java
@@ -91,7 +91,7 @@ public final class DocumentViewOp
private static final Logger LOG =
Logger.getLogger(DocumentViewOp.class.getName());
// Whether use fractional metrics rendering hint
- static final Map<Object, Object> extraRenderingHints = new HashMap<Object,
Object>();
+ static final Map<Object, Object> extraRenderingHints = new HashMap<>();
static final Boolean doubleBuffered;
@@ -151,7 +151,7 @@ public final class DocumentViewOp
if (contrast != null) {
try {
extraRenderingHints.put(RenderingHints.KEY_TEXT_LCD_CONTRAST,
- Integer.parseInt(contrast));
+ Integer.valueOf(contrast));
} catch (NumberFormatException ex) {
// Do not add the key
}
@@ -919,14 +919,13 @@ public final class DocumentViewOp
/* private */ void updatePreferencesSettings(boolean nonInitialUpdate) {
boolean nonPrintableCharactersVisibleOrig =
isAnyStatusBit(NON_PRINTABLE_CHARACTERS_VISIBLE);
- boolean nonPrintableCharactersVisible =
Boolean.TRUE.equals(prefs.getBoolean(
- SimpleValueNames.NON_PRINTABLE_CHARACTERS_VISIBLE, false));
+ boolean nonPrintableCharactersVisible =
prefs.getBoolean(SimpleValueNames.NON_PRINTABLE_CHARACTERS_VISIBLE, false);
updateStatusBits(NON_PRINTABLE_CHARACTERS_VISIBLE,
nonPrintableCharactersVisible);
// Line height correction
float lineHeightCorrectionOrig = rowHeightCorrection;
rowHeightCorrection =
prefs.getFloat(SimpleValueNames.LINE_HEIGHT_CORRECTION, 1.0f);
boolean inlineHintsEnableOrig = inlineHintsEnable;
- inlineHintsEnable =
Boolean.TRUE.equals(prefs.getBoolean("enable.inline.hints", true)); // NOI18N
+ inlineHintsEnable = prefs.getBoolean("enable.inline.hints", false); //
NOI18N
boolean updateMetrics = (rowHeightCorrection !=
lineHeightCorrectionOrig);
boolean releaseChildren = nonInitialUpdate &&
((nonPrintableCharactersVisible !=
nonPrintableCharactersVisibleOrig) ||
@@ -940,7 +939,7 @@ public final class DocumentViewOp
if (releaseChildren) {
releaseChildren(false);
}
- boolean currentGuideLinesEnable =
Boolean.TRUE.equals(prefs.getBoolean("enable.guide.lines", true)); // NOI18N
+ boolean currentGuideLinesEnable =
prefs.getBoolean("enable.guide.lines", true); // NOI18N
if (nonInitialUpdate && guideLinesEnable != currentGuideLinesEnable) {
docView.op.notifyRepaint(visibleRect.getMinX(),
visibleRect.getMinY(), visibleRect.getMaxX(), visibleRect.getMaxY());
}
diff --git
a/ide/editor/src/org/netbeans/modules/editor/resources/NetBeans-keybindings.xml
b/ide/editor/src/org/netbeans/modules/editor/resources/NetBeans-keybindings.xml
index 1e6afcfec1..9181a8ec6a 100644
---
a/ide/editor/src/org/netbeans/modules/editor/resources/NetBeans-keybindings.xml
+++
b/ide/editor/src/org/netbeans/modules/editor/resources/NetBeans-keybindings.xml
@@ -177,6 +177,7 @@
<bind actionName="toggle-highlight-search" key="OS-H"/>
<bind actionName="toggle-rectangular-selection" key="DS-R"/>
<bind actionName="toggle-typing-mode" key="INSERT"/>
+ <bind actionName="toggle-inline-hints" key="O-I"/>
<bind actionName="tooltip-show" key="D-P"/>
<bind actionName="transpose-letters" key="D-T"/>
<bind actionName="undo" key="UNDO"/>
diff --git
a/java/java.editor/src/org/netbeans/modules/java/editor/options/Bundle.properties
b/java/java.editor/src/org/netbeans/modules/java/editor/options/Bundle.properties
index 6ffeef4c72..ecb3637689 100644
---
a/java/java.editor/src/org/netbeans/modules/java/editor/options/Bundle.properties
+++
b/java/java.editor/src/org/netbeans/modules/java/editor/options/Bundle.properties
@@ -152,3 +152,4 @@ CodeCompletionPanel.javadocAutoCompletionTriggersField.text=
InlineHintsPanel.javaInlineHintParameterNameCB.text=Show parameter names
InlineHintsPanel.javaInlineHintChainedTypesCB.text=Show types of chained
methods
InlineHintsPanel.javaInlineHintVarTypeCB.text=Show type of var
+InlineHintsPanel.javaInlineHintsCB.text=Enable Inline Hints
diff --git
a/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.form
b/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.form
index ef97e71b7a..8ca2882952 100644
---
a/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.form
+++
b/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.form
@@ -38,10 +38,44 @@
<AuxValue name="FormSettings_listenerGenerationStyle"
type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean"
value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer"
value="2"/>
- <AuxValue name="designerSize" type="java.awt.Dimension"
value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,60,0,0,2,16"/>
</AuxValues>
- <Layout
class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace min="21" pref="21" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="javaInlineHintVarTypeCB"
alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="javaInlineHintChainedTypesCB"
alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="javaInlineHintParameterNameCB"
alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ <Component id="javaInlineHintsCB" min="-2" max="-2"
attributes="0"/>
+ </Group>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="javaInlineHintsCB" min="-2" max="-2"
attributes="0"/>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Component id="javaInlineHintParameterNameCB" min="-2" max="-2"
attributes="0"/>
+ <EmptySpace min="6" pref="6" max="-2" attributes="0"/>
+ <Component id="javaInlineHintChainedTypesCB" min="-2" max="-2"
attributes="0"/>
+ <EmptySpace min="6" pref="6" max="-2" attributes="0"/>
+ <Component id="javaInlineHintVarTypeCB" min="-2" max="-2"
attributes="0"/>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
<SubComponents>
<Component class="javax.swing.JCheckBox"
name="javaInlineHintParameterNameCB">
<Properties>
@@ -49,11 +83,6 @@
<ResourceString
bundle="org/netbeans/modules/java/editor/options/Bundle.properties"
key="InlineHintsPanel.javaInlineHintParameterNameCB.text"
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class,
"{key}")"/>
</Property>
</Properties>
- <Constraints>
- <Constraint
layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"
value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1"
gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="3" insetsLeft="3"
insetsBottom="3" insetsRight="3" anchor="10" weightX="1.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
</Component>
<Component class="javax.swing.JCheckBox"
name="javaInlineHintChainedTypesCB">
<Properties>
@@ -61,11 +90,6 @@
<ResourceString
bundle="org/netbeans/modules/java/editor/options/Bundle.properties"
key="InlineHintsPanel.javaInlineHintChainedTypesCB.text"
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class,
"{key}")"/>
</Property>
</Properties>
- <Constraints>
- <Constraint
layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"
value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1"
fill="2" ipadX="0" ipadY="0" insetsTop="3" insetsLeft="3" insetsBottom="3"
insetsRight="3" anchor="10" weightX="1.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
</Component>
<Component class="javax.swing.JCheckBox" name="javaInlineHintVarTypeCB">
<Properties>
@@ -73,26 +97,13 @@
<ResourceString
bundle="org/netbeans/modules/java/editor/options/Bundle.properties"
key="InlineHintsPanel.javaInlineHintVarTypeCB.text"
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class,
"{key}")"/>
</Property>
</Properties>
- <Constraints>
- <Constraint
layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"
value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1"
fill="2" ipadX="0" ipadY="0" insetsTop="3" insetsLeft="3" insetsBottom="3"
insetsRight="3" anchor="10" weightX="1.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
</Component>
- <Component class="javax.swing.Box$Filler" name="filler1">
+ <Component class="javax.swing.JCheckBox" name="javaInlineHintsCB">
<Properties>
- <Property name="maximumSize" type="java.awt.Dimension"
editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[32767, 32767]"/>
+ <Property name="text" type="java.lang.String"
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString
bundle="org/netbeans/modules/java/editor/options/Bundle.properties"
key="InlineHintsPanel.javaInlineHintsCB.text"
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class,
"{key}")"/>
</Property>
</Properties>
- <AuxValues>
- <AuxValue name="classDetails" type="java.lang.String"
value="Box.Filler.Glue"/>
- </AuxValues>
- <Constraints>
- <Constraint
layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"
value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1"
fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0"
insetsRight="0" anchor="10" weightX="1.0" weightY="1.0"/>
- </Constraint>
- </Constraints>
</Component>
</SubComponents>
</Form>
diff --git
a/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.java
b/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.java
index de490b4a74..83df44ed1f 100644
---
a/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.java
+++
b/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsPanel.java
@@ -18,6 +18,8 @@
*/
package org.netbeans.modules.java.editor.options;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -26,13 +28,14 @@ import java.util.Map;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
import javax.swing.JCheckBox;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import org.netbeans.api.editor.EditorRegistry;
import org.netbeans.modules.editor.NbEditorUtilities;
import org.netbeans.modules.parsing.api.indexing.IndexingManager;
import org.openide.util.Exceptions;
+/**
+ * UI for inline-hints settings (Tools->Options->Editor->Inline
Hints).
+ */
public class InlineHintsPanel extends javax.swing.JPanel {
public static final String JAVA_INLINE_HINT_PARAMETER_NAME =
"javaInlineHintParameterName"; //NOI18N
@@ -49,38 +52,41 @@ public class InlineHintsPanel extends javax.swing.JPanel {
DEFAULT_VALUES = Collections.unmodifiableMap(defaultValuesBuilder);
}
- private List<JCheckBox> boxes;
+ private List<JCheckBox> parameterBoxes;
private InlineHintsOptionsPanelController controller;
private boolean changed = false;
- /**
- * Creates new form InlineHintsPanel
- */
public InlineHintsPanel(InlineHintsOptionsPanelController controller) {
initComponents();
-// if( "Windows".equals(UIManager.getLookAndFeel().getID()) ) //NOI18N
-// setOpaque( false );
fillBoxes();
addListeners();
- load(controller);
}
public void load(InlineHintsOptionsPanelController controller) {
this.controller = controller;
+
javaInlineHintsCB.setSelected(InlineHintsSettings.isInlineHintsEnabled());
+
Preferences node = InlineHintsSettings.getCurrentNode();
- for (JCheckBox box : boxes) {
+ for (JCheckBox box : parameterBoxes) {
box.setSelected(node.getBoolean(box.getActionCommand(),
DEFAULT_VALUES.get(box.getActionCommand())));
}
+ updateCheckBoxEnabledState(null);
+
changed = false;
}
public void store() {
+
+ if (javaInlineHintsCB.isSelected() !=
InlineHintsSettings.isInlineHintsEnabled()) {
+
InlineHintsSettings.setInlineHintsEnabled(javaInlineHintsCB.isSelected());
+ }
+
Preferences node = InlineHintsSettings.getCurrentNode();
- for (javax.swing.JCheckBox box : boxes) {
+ for (JCheckBox box : parameterBoxes) {
boolean value = box.isSelected();
boolean original = node.getBoolean(box.getActionCommand(),
DEFAULT_VALUES.get(box.getActionCommand()));
@@ -117,62 +123,83 @@ public class InlineHintsPanel extends javax.swing.JPanel {
*/
// <editor-fold defaultstate="collapsed" desc="Generated
Code">//GEN-BEGIN:initComponents
private void initComponents() {
- java.awt.GridBagConstraints gridBagConstraints;
javaInlineHintParameterNameCB = new javax.swing.JCheckBox();
javaInlineHintChainedTypesCB = new javax.swing.JCheckBox();
javaInlineHintVarTypeCB = new javax.swing.JCheckBox();
- filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new
java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 32767));
+ javaInlineHintsCB = new javax.swing.JCheckBox();
setBorder(javax.swing.BorderFactory.createEmptyBorder(8, 8, 8, 8));
- setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(javaInlineHintParameterNameCB,
org.openide.util.NbBundle.getMessage(InlineHintsPanel.class,
"InlineHintsPanel.javaInlineHintParameterNameCB.text")); // NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
- add(javaInlineHintParameterNameCB, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(javaInlineHintChainedTypesCB,
org.openide.util.NbBundle.getMessage(InlineHintsPanel.class,
"InlineHintsPanel.javaInlineHintChainedTypesCB.text")); // NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
- add(javaInlineHintChainedTypesCB, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(javaInlineHintVarTypeCB,
org.openide.util.NbBundle.getMessage(InlineHintsPanel.class,
"InlineHintsPanel.javaInlineHintVarTypeCB.text")); // NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 2;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
- add(javaInlineHintVarTypeCB, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 3;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.weighty = 1.0;
- add(filler1, gridBagConstraints);
+
+ org.openide.awt.Mnemonics.setLocalizedText(javaInlineHintsCB,
org.openide.util.NbBundle.getMessage(InlineHintsPanel.class,
"InlineHintsPanel.javaInlineHintsCB.text")); // NOI18N
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(21, 21, 21)
+
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(javaInlineHintVarTypeCB)
+ .addComponent(javaInlineHintChainedTypesCB)
+ .addComponent(javaInlineHintParameterNameCB)))
+ .addComponent(javaInlineHintsCB))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
+ );
+ layout.setVerticalGroup(
+
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(javaInlineHintsCB)
+
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(javaInlineHintParameterNameCB)
+ .addGap(6, 6, 6)
+ .addComponent(javaInlineHintChainedTypesCB)
+ .addGap(6, 6, 6)
+ .addComponent(javaInlineHintVarTypeCB)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
+ );
}// </editor-fold>//GEN-END:initComponents
+ private void updateCheckBoxEnabledState(ActionEvent evt) {
+ if (javaInlineHintsCB.isSelected() &&
parameterBoxes.stream().noneMatch(JCheckBox::isSelected)) {
+ if (evt != null && evt.getSource() == javaInlineHintsCB) {
+ // restore default if hints are toggled on and no other
parameter boxes are selected
+ // this ensures that the view aciton won't become a no-op
+ for (JCheckBox box : parameterBoxes) {
+
box.setSelected(DEFAULT_VALUES.get(box.getActionCommand()));
+ }
+ } else {
+ // disable inline hints if none of the parameter boxes are
selected
+ javaInlineHintsCB.setSelected(false);
+ }
+ }
+ // enable parameter boxes only if inline hints are active
+ parameterBoxes.forEach(box ->
box.setEnabled(javaInlineHintsCB.isSelected()));
+ }
+
// Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.Box.Filler filler1;
private javax.swing.JCheckBox javaInlineHintChainedTypesCB;
private javax.swing.JCheckBox javaInlineHintParameterNameCB;
private javax.swing.JCheckBox javaInlineHintVarTypeCB;
+ private javax.swing.JCheckBox javaInlineHintsCB;
// End of variables declaration//GEN-END:variables
- // End of variables declaration
private void fillBoxes() {
- boxes = new ArrayList<JCheckBox>();
- boxes.add(javaInlineHintParameterNameCB);
- boxes.add(javaInlineHintChainedTypesCB);
- boxes.add(javaInlineHintVarTypeCB);
+ parameterBoxes = new ArrayList<>();
+ parameterBoxes.add(javaInlineHintParameterNameCB);
+ parameterBoxes.add(javaInlineHintChainedTypesCB);
+ parameterBoxes.add(javaInlineHintVarTypeCB);
javaInlineHintParameterNameCB.setActionCommand(JAVA_INLINE_HINT_PARAMETER_NAME);
javaInlineHintChainedTypesCB.setActionCommand(JAVA_INLINE_HINT_CHAINED_TYPES);
@@ -180,17 +207,21 @@ public class InlineHintsPanel extends javax.swing.JPanel {
}
private void addListeners() {
- ChangeListener cl = new CheckChangeListener();
-
- for (JCheckBox box : boxes) {
- box.addChangeListener(cl);
+ ActionListener al = e -> checkBoxChanged(e);
+ javaInlineHintsCB.addActionListener(al);
+ for (JCheckBox box : parameterBoxes) {
+ box.addActionListener(al);
}
-
}
- private void fireChanged() {
+ private void checkBoxChanged(ActionEvent evt) {
+ updateCheckBoxEnabledState(evt);
+ if (javaInlineHintsCB.isSelected() !=
InlineHintsSettings.isInlineHintsEnabled()) {
+ changed = true;
+ return;
+ }
Preferences node = InlineHintsSettings.getCurrentNode();
- for (JCheckBox box : boxes) {
+ for (JCheckBox box : parameterBoxes) {
if (node.getBoolean(box.getActionCommand(),
DEFAULT_VALUES.get(box.getActionCommand())) != box.isSelected()) {
changed = true;
return;
@@ -199,12 +230,4 @@ public class InlineHintsPanel extends javax.swing.JPanel {
changed = false;
}
- private class CheckChangeListener implements ChangeListener {
-
- @Override
- public void stateChanged(ChangeEvent evt) {
- fireChanged();
- }
- }
-
}
diff --git
a/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsSettings.java
b/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsSettings.java
index baeaf9a7e9..5d9287ef1c 100644
---
a/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsSettings.java
+++
b/java/java.editor/src/org/netbeans/modules/java/editor/options/InlineHintsSettings.java
@@ -19,15 +19,17 @@ package org.netbeans.modules.java.editor.options;
* under the License.
*/
-
-import org.netbeans.modules.java.editor.options.*;
import java.util.prefs.Preferences;
+import org.netbeans.api.editor.mimelookup.MimeLookup;
import org.openide.util.NbPreferences;
public class InlineHintsSettings {
private static final String INLINE_HINTS = "InlineHints"; // NOI18N
+ // see org.netbeans.modules.editor.actions.ShowInlineHintsAction
+ private static final String JAVA_INLINE_HINTS_KEY = "enable.inline.hints";
// NOI18N
+
private InlineHintsSettings() {
}
@@ -35,7 +37,22 @@ public class InlineHintsSettings {
Preferences preferences =
NbPreferences.forModule(MarkOccurencesOptionsPanelController.class);
return preferences.node(INLINE_HINTS).node(getCurrentProfileId());
}
-
+
+ private static Preferences getJavaEditorPreferences() {
+ // ShowInlineHintsAction is registering the action without setting the
mime type
+ // this means this is a global toggle right now
+ return MimeLookup.getLookup("").lookup(Preferences.class);
+// return
MimeLookup.getLookup(JavaKit.JAVA_MIME_TYPE).lookup(Preferences.class);
+ }
+
+ public static boolean isInlineHintsEnabled() {
+ return getJavaEditorPreferences().getBoolean(JAVA_INLINE_HINTS_KEY,
false);
+ }
+
+ public static void setInlineHintsEnabled(boolean enabled) {
+ getJavaEditorPreferences().putBoolean(JAVA_INLINE_HINTS_KEY, enabled);
+ }
+
private static String getCurrentProfileId() {
return "default"; // NOI18N
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists