/*
* Copyright 2015 Igor Maznitsa.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.igormaznitsa.sciareto.preferences;
import com.igormaznitsa.mindmap.swing.panel.utils.PropertiesPreferences;
import com.igormaznitsa.sciareto.ui.editors.mmeditors.KeyShortCutEditPanel;
import com.igormaznitsa.sciareto.ui.editors.mmeditors.FontSelector;
import com.igormaznitsa.sciareto.ui.misc.AboutPanel;
import com.igormaznitsa.mindmap.model.logger.Logger;
import com.igormaznitsa.mindmap.model.logger.LoggerFactory;
import com.igormaznitsa.mindmap.swing.panel.MindMapPanelConfig;
import com.igormaznitsa.mindmap.swing.panel.utils.KeyShortcut;
import java.awt.Font;
import java.awt.event.KeyEvent;
import java.io.File;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
import java.util.prefs.Preferences;
import javax.annotation.Nonnull;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
import org.apache.commons.io.FileUtils;
import com.igormaznitsa.meta.annotation.ReturnsOriginal;
import com.igormaznitsa.meta.common.utils.Assertions;
import com.igormaznitsa.sciareto.Context;
import com.igormaznitsa.sciareto.Main;
import com.igormaznitsa.sciareto.metrics.MetricsService;
import com.igormaznitsa.sciareto.ui.DialogProviderManager;
import com.igormaznitsa.sciareto.ui.editors.TextEditor;
public final class PreferencesPanel extends javax.swing.JPanel {
private static final long serialVersionUID = -1090601330630026253L;
private static final Logger LOGGER = LoggerFactory.getLogger(PreferencesPanel.class);
private static final class PropertiesFileFilter extends FileFilter {
@Override
public boolean accept(@Nonnull final File f) {
return f.isDirectory() || f.getName().toLowerCase(Locale.ENGLISH).endsWith(".properties"); //NOI18N
}
@Override
public String getDescription() {
return "Java properties file (*.properties)";
}
}
private volatile boolean changeNotificationAllowed = true;
private final Context context;
public static final String PREFERENCE_KEY_KNOWLEDGEFOLDER_ALLOWED = "knowledgeFolderGenerationAllowed"; //NOI18N
private boolean changed;
private Font fontTextEditor = TextEditor.DEFAULT_FONT;
private Font fontMindMapEditor = TextEditor.DEFAULT_FONT;
private final MindMapPanelConfig config = new MindMapPanelConfig();
private final transient Map<String, KeyShortcut> mapKeyShortCuts = new TreeMap<>(new Comparator<String>() {
@Override
public int compare(final String o1, final String o2) {
return o1.compareTo(o2);
}
});
public PreferencesPanel(final Context context) {
this.context = context;
initComponents();
}
public boolean isChanged() {
return this.changed;
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jScrollPane1 = new javax.swing.JScrollPane();
jPanel6 = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
spinnerConnectorWidth = new javax.swing.JSpinner();
colorChooserConnectorColor = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooserCollapsatorBorder = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooserCollapsatorBackground = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
jLabel5 = new javax.swing.JLabel();
spinnerCollapsatorSize = new javax.swing.JSpinner();
jLabel6 = new javax.swing.JLabel();
spinnerCollapsatorWidth = new javax.swing.JSpinner();
colorChooserJumpLink = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
jLabel7 = new javax.swing.JLabel();
spinnerJumpLinkWidth = new javax.swing.JSpinner();
jPanel4 = new javax.swing.JPanel();
colorChooserPaperColor = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
checkBoxShowGrid = new javax.swing.JCheckBox();
colorChooserGridColor = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
spinnerGridStep = new javax.swing.JSpinner();
jLabel1 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
colorChooserRootBackground = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooserRootText = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooser1stBackground = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooser1stText = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooser2ndBackground = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
colorChooser2ndText = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
slider1stLevelHorzGap = new javax.swing.JSlider();
slider1stLevelVertGap = new javax.swing.JSlider();
slider2ndLevelHorzGap = new javax.swing.JSlider();
slider2ndLevelVertGap = new javax.swing.JSlider();
jPanel5 = new javax.swing.JPanel();
colorChooserSelectLine = new com.igormaznitsa.sciareto.ui.misc.ColorChooserButton();
jLabel3 = new javax.swing.JLabel();
spinnerSelectLineWidth = new javax.swing.JSpinner();
jLabel4 = new javax.swing.JLabel();
spinnerSelectLineGap = new javax.swing.JSpinner();
filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
jPanel10 = new javax.swing.JPanel();
buttonFontForEditor = new javax.swing.JButton();
jPanel11 = new javax.swing.JPanel();
checkBoxDropShadow = new javax.swing.JCheckBox();
jPanel12 = new javax.swing.JPanel();
spinnerElementBorderWidth = new javax.swing.JSpinner();
labelBorderWidth = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
checkboxUseInsideBrowser = new javax.swing.JCheckBox();
checkboxRelativePathsForFilesInTheProject = new javax.swing.JCheckBox();
checkBoxUnfoldCollapsedTarget = new javax.swing.JCheckBox();
checkBoxCopyColorInfoToNewAllowed = new javax.swing.JCheckBox();
checkBoxKnowledgeFolderAutogenerationAllowed = new javax.swing.JCheckBox();
jPanel7 = new javax.swing.JPanel();
buttonFont = new javax.swing.JButton();
jPanel8 = new javax.swing.JPanel();
buttonOpenShortcutEditor = new javax.swing.JButton();
panelScalingModifiers = new javax.swing.JPanel();
checkBoxScalingCTRL = new javax.swing.JCheckBox();
checkBoxScalingALT = new javax.swing.JCheckBox();
checkBoxScalingSHIFT = new javax.swing.JCheckBox();
checkBoxScalingMETA = new javax.swing.JCheckBox();
checkboxMetricsAllowed = new javax.swing.JCheckBox();
jPanel9 = new javax.swing.JPanel();
buttonAbout = new javax.swing.JButton();
donateButton1 = new com.igormaznitsa.sciareto.ui.misc.DonateButton();
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
buttonResetToDefault = new javax.swing.JButton();
filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 16), new java.awt.Dimension(0, 16), new java.awt.Dimension(32767, 16));
buttonExportToFile = new javax.swing.JButton();
buttonImportFromFile = new javax.swing.JButton();
setLayout(new java.awt.BorderLayout());
jPanel6.setLayout(new java.awt.GridBagLayout());
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Connector and collapsator options"));
jPanel3.setLayout(new java.awt.GridBagLayout());
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel2.setText("Collapsator width:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipady = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(jLabel2, gridBagConstraints);
spinnerConnectorWidth.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.1f), Float.valueOf(0.05f), Float.valueOf(20.0f), Float.valueOf(0.01f)));
spinnerConnectorWidth.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
spinnerConnectorWidthStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 80;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
jPanel3.add(spinnerConnectorWidth, gridBagConstraints);
colorChooserConnectorColor.setText("Connector color");
colorChooserConnectorColor.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserConnectorColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserConnectorColorActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
jPanel3.add(colorChooserConnectorColor, gridBagConstraints);
colorChooserCollapsatorBorder.setText("Collapsator border");
colorChooserCollapsatorBorder.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserCollapsatorBorder.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserCollapsatorBorderActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
jPanel3.add(colorChooserCollapsatorBorder, gridBagConstraints);
colorChooserCollapsatorBackground.setText("Collapsator fill");
colorChooserCollapsatorBackground.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserCollapsatorBackground.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserCollapsatorBackgroundActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(colorChooserCollapsatorBackground, gridBagConstraints);
jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel5.setText("Collapsator size:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipady = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(jLabel5, gridBagConstraints);
spinnerCollapsatorSize.setModel(new javax.swing.SpinnerNumberModel(5, 3, 500, 1));
spinnerCollapsatorSize.setMinimumSize(new java.awt.Dimension(80, 0));
spinnerCollapsatorSize.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
spinnerCollapsatorSizeStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
jPanel3.add(spinnerCollapsatorSize, gridBagConstraints);
jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel6.setText("Collapsator width:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipady = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(jLabel6, gridBagConstraints);
spinnerCollapsatorWidth.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.01f), Float.valueOf(100.0f), Float.valueOf(0.1f)));
spinnerCollapsatorWidth.setMinimumSize(new java.awt.Dimension(80, 0));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
jPanel3.add(spinnerCollapsatorWidth, gridBagConstraints);
colorChooserJumpLink.setText("Jump link");
colorChooserJumpLink.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserJumpLink.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserJumpLinkActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(colorChooserJumpLink, gridBagConstraints);
jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel7.setText("Jump link width:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(jLabel7, gridBagConstraints);
spinnerJumpLinkWidth.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.1f), Float.valueOf(0.05f), Float.valueOf(20.0f), Float.valueOf(0.01f)));
spinnerJumpLinkWidth.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
spinnerJumpLinkWidthStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 80;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
jPanel3.add(spinnerJumpLinkWidth, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel6.add(jPanel3, gridBagConstraints);
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Paper options"));
jPanel4.setLayout(new java.awt.GridBagLayout());
colorChooserPaperColor.setText("Background fill");
colorChooserPaperColor.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserPaperColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserPaperColorActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
jPanel4.add(colorChooserPaperColor, gridBagConstraints);
checkBoxShowGrid.setText("Show grid");
checkBoxShowGrid.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxShowGridActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.ipady = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel4.add(checkBoxShowGrid, gridBagConstraints);
colorChooserGridColor.setText("Grid color");
colorChooserGridColor.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserGridColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserGridColorActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
jPanel4.add(colorChooserGridColor, gridBagConstraints);
spinnerGridStep.setModel(new javax.swing.SpinnerNumberModel(15, 2, 500, 1));
spinnerGridStep.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
spinnerGridStepStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
jPanel4.add(spinnerGridStep, gridBagConstraints);
jLabel1.setText("Grid step: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.ipady = 5;
jPanel4.add(jLabel1, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 73;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel6.add(jPanel4, gridBagConstraints);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Element options"));
jPanel2.setLayout(new java.awt.GridBagLayout());
colorChooserRootBackground.setText("Root fill");
colorChooserRootBackground.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserRootBackground.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserRootBackgroundActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(colorChooserRootBackground, gridBagConstraints);
colorChooserRootText.setText("Root text");
colorChooserRootText.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserRootText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserRootTextActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(colorChooserRootText, gridBagConstraints);
colorChooser1stBackground.setText("1st level fill");
colorChooser1stBackground.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooser1stBackground.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooser1stBackgroundActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(colorChooser1stBackground, gridBagConstraints);
colorChooser1stText.setText("1st level text");
colorChooser1stText.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooser1stText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooser1stTextActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(colorChooser1stText, gridBagConstraints);
colorChooser2ndBackground.setText("2nd level fill");
colorChooser2ndBackground.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooser2ndBackground.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooser2ndBackgroundActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(colorChooser2ndBackground, gridBagConstraints);
colorChooser2ndText.setText("2nd level text");
colorChooser2ndText.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooser2ndText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooser2ndTextActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(colorChooser2ndText, gridBagConstraints);
slider1stLevelHorzGap.setMajorTickSpacing(30);
slider1stLevelHorzGap.setMaximum(250);
slider1stLevelHorzGap.setMinimum(10);
slider1stLevelHorzGap.setPaintLabels(true);
slider1stLevelHorzGap.setPaintTicks(true);
slider1stLevelHorzGap.setBorder(javax.swing.BorderFactory.createTitledBorder("1st level horz.gap"));
slider1stLevelHorzGap.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
slider1stLevelHorzGapStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(slider1stLevelHorzGap, gridBagConstraints);
slider1stLevelVertGap.setMajorTickSpacing(30);
slider1stLevelVertGap.setMaximum(250);
slider1stLevelVertGap.setMinimum(10);
slider1stLevelVertGap.setPaintLabels(true);
slider1stLevelVertGap.setPaintTicks(true);
slider1stLevelVertGap.setBorder(javax.swing.BorderFactory.createTitledBorder("1st level vert.gap"));
slider1stLevelVertGap.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
slider1stLevelVertGapStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(slider1stLevelVertGap, gridBagConstraints);
slider2ndLevelHorzGap.setMajorTickSpacing(30);
slider2ndLevelHorzGap.setMaximum(250);
slider2ndLevelHorzGap.setMinimum(10);
slider2ndLevelHorzGap.setPaintLabels(true);
slider2ndLevelHorzGap.setPaintTicks(true);
slider2ndLevelHorzGap.setBorder(javax.swing.BorderFactory.createTitledBorder("2nd level horz.gap"));
slider2ndLevelHorzGap.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
slider2ndLevelHorzGapStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(slider2ndLevelHorzGap, gridBagConstraints);
slider2ndLevelVertGap.setMajorTickSpacing(30);
slider2ndLevelVertGap.setMaximum(250);
slider2ndLevelVertGap.setMinimum(10);
slider2ndLevelVertGap.setPaintLabels(true);
slider2ndLevelVertGap.setPaintTicks(true);
slider2ndLevelVertGap.setBorder(javax.swing.BorderFactory.createTitledBorder("2nd level vert.gap"));
slider2ndLevelVertGap.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
slider2ndLevelVertGapStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 7;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel2.add(slider2ndLevelVertGap, gridBagConstraints);
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Selection frame"));
jPanel5.setLayout(new java.awt.GridBagLayout());
colorChooserSelectLine.setText("Select frame color");
colorChooserSelectLine.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
colorChooserSelectLine.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorChooserSelectLineActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
jPanel5.add(colorChooserSelectLine, gridBagConstraints);
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel3.setText("Selection frame width:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipady = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel5.add(jLabel3, gridBagConstraints);
spinnerSelectLineWidth.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.02f), Float.valueOf(100.0f), Float.valueOf(0.1f)));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel5.add(spinnerSelectLineWidth, gridBagConstraints);
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel4.setText("Selection frame gap:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel5.add(jLabel4, gridBagConstraints);
spinnerSelectLineGap.setModel(new javax.swing.SpinnerNumberModel(1, 1, 500, 1));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel5.add(spinnerSelectLineGap, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 2;
jPanel2.add(jPanel5, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 10;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.weighty = 1000.0;
jPanel2.add(filler2, gridBagConstraints);
jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Text editor font"));
jPanel10.setLayout(new java.awt.BorderLayout());
buttonFontForEditor.setText("...");
buttonFontForEditor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonFontForEditorActionPerformed(evt);
}
});
jPanel10.add(buttonFontForEditor, java.awt.BorderLayout.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 10;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
jPanel2.add(jPanel10, gridBagConstraints);
jPanel11.setLayout(new java.awt.BorderLayout());
checkBoxDropShadow.setText("Drop shadow");
checkBoxDropShadow.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxDropShadowActionPerformed(evt);
}
});
jPanel11.add(checkBoxDropShadow, java.awt.BorderLayout.CENTER);
jPanel12.setLayout(new java.awt.BorderLayout());
spinnerElementBorderWidth.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.5f), Float.valueOf(0.05f), Float.valueOf(50.0f), Float.valueOf(0.1f)));
spinnerElementBorderWidth.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
spinnerElementBorderWidthStateChanged(evt);
}
});
jPanel12.add(spinnerElementBorderWidth, java.awt.BorderLayout.CENTER);
labelBorderWidth.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
labelBorderWidth.setText("Border width:");
jPanel12.add(labelBorderWidth, java.awt.BorderLayout.WEST);
jPanel11.add(jPanel12, java.awt.BorderLayout.EAST);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 8, 0);
jPanel2.add(jPanel11, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel6.add(jPanel2, gridBagConstraints);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Misc"));
jPanel1.setLayout(new java.awt.GridBagLayout());
checkboxUseInsideBrowser.setText("Prefer internal browser to open URL"); // NOI18N
checkboxUseInsideBrowser.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkboxUseInsideBrowserActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel1.add(checkboxUseInsideBrowser, gridBagConstraints);
checkboxRelativePathsForFilesInTheProject.setText("Use relative paths for project files"); // NOI18N
checkboxRelativePathsForFilesInTheProject.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkboxRelativePathsForFilesInTheProjectActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel1.add(checkboxRelativePathsForFilesInTheProject, gridBagConstraints);
checkBoxUnfoldCollapsedTarget.setText("Unfold collapsed drop target");
checkBoxUnfoldCollapsedTarget.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxUnfoldCollapsedTargetActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel1.add(checkBoxUnfoldCollapsedTarget, gridBagConstraints);
checkBoxCopyColorInfoToNewAllowed.setText("Copy parent color info to new child");
checkBoxCopyColorInfoToNewAllowed.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxCopyColorInfoToNewAllowedActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel1.add(checkBoxCopyColorInfoToNewAllowed, gridBagConstraints);
checkBoxKnowledgeFolderAutogenerationAllowed.setText("Enable autocreation .projectKnowledge folder");
checkBoxKnowledgeFolderAutogenerationAllowed.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxKnowledgeFolderAutogenerationAllowedActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel1.add(checkBoxKnowledgeFolderAutogenerationAllowed, gridBagConstraints);
jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Mind map topic text font"));
jPanel7.setLayout(new java.awt.BorderLayout());
buttonFont.setText("..."); // NOI18N
buttonFont.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonFontActionPerformed(evt);
}
});
jPanel7.add(buttonFont, java.awt.BorderLayout.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
jPanel1.add(jPanel7, gridBagConstraints);
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("com/igormaznitsa/nbmindmap/i18n/Bundle"); // NOI18N
jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("MMDCfgPanel.ShortCutsTitle"))); // NOI18N
jPanel8.setLayout(new java.awt.BorderLayout());
buttonOpenShortcutEditor.setText(bundle.getString("MMDCfgPanel.ShortCutsButtonText")); // NOI18N
buttonOpenShortcutEditor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonOpenShortcutEditorActionPerformed(evt);
}
});
jPanel8.add(buttonOpenShortcutEditor, java.awt.BorderLayout.NORTH);
panelScalingModifiers.setBorder(javax.swing.BorderFactory.createTitledBorder("Activator to scale with wheel"));
panelScalingModifiers.setLayout(new java.awt.GridLayout(1, 0));
checkBoxScalingCTRL.setText("CTRL"); // NOI18N
checkBoxScalingCTRL.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxScalingCTRLActionPerformed(evt);
}
});
panelScalingModifiers.add(checkBoxScalingCTRL);
checkBoxScalingALT.setText("ALT"); // NOI18N
checkBoxScalingALT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxScalingALTActionPerformed(evt);
}
});
panelScalingModifiers.add(checkBoxScalingALT);
checkBoxScalingSHIFT.setText("SHIFT"); // NOI18N
checkBoxScalingSHIFT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxScalingSHIFTActionPerformed(evt);
}
});
panelScalingModifiers.add(checkBoxScalingSHIFT);
checkBoxScalingMETA.setText("META"); // NOI18N
checkBoxScalingMETA.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkBoxScalingMETAActionPerformed(evt);
}
});
panelScalingModifiers.add(checkBoxScalingMETA);
jPanel8.add(panelScalingModifiers, java.awt.BorderLayout.SOUTH);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 7;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
jPanel1.add(jPanel8, gridBagConstraints);
checkboxMetricsAllowed.setText("Enable metrics upload");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel1.add(checkboxMetricsAllowed, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel6.add(jPanel1, gridBagConstraints);
jPanel9.setLayout(new java.awt.GridBagLayout());
buttonAbout.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/info16.png"))); // NOI18N
buttonAbout.setText("About"); // NOI18N
buttonAbout.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonAboutActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel9.add(buttonAbout, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel9.add(donateButton1, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.weighty = 1000.0;
jPanel9.add(filler1, gridBagConstraints);
buttonResetToDefault.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu_icons/stop.png"))); // NOI18N
buttonResetToDefault.setText("Reset to default");
buttonResetToDefault.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonResetToDefaultActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
jPanel9.add(buttonResetToDefault, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
jPanel9.add(filler3, gridBagConstraints);
buttonExportToFile.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/document_export16.png"))); // NOI18N
buttonExportToFile.setText("Export to File");
buttonExportToFile.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonExportToFileActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
jPanel9.add(buttonExportToFile, gridBagConstraints);
buttonImportFromFile.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/document_import16.png"))); // NOI18N
buttonImportFromFile.setText("Import from File");
buttonImportFromFile.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonImportFromFileActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
jPanel9.add(buttonImportFromFile, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.insets = new java.awt.Insets(16, 5, 0, 5);
jPanel6.add(jPanel9, gridBagConstraints);
jScrollPane1.setViewportView(jPanel6);
add(jScrollPane1, java.awt.BorderLayout.LINE_END);
}// </editor-fold>//GEN-END:initComponents
private void checkBoxShowGridActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxShowGridActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxShowGridActionPerformed
private void colorChooserPaperColorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserPaperColorActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserPaperColorActionPerformed
private void colorChooserGridColorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserGridColorActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserGridColorActionPerformed
private void spinnerGridStepStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerGridStepStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_spinnerGridStepStateChanged
private void spinnerConnectorWidthStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerConnectorWidthStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_spinnerConnectorWidthStateChanged
private void colorChooserConnectorColorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserConnectorColorActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserConnectorColorActionPerformed
private void colorChooserSelectLineActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserSelectLineActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserSelectLineActionPerformed
private void colorChooserCollapsatorBorderActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserCollapsatorBorderActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserCollapsatorBorderActionPerformed
private void colorChooserCollapsatorBackgroundActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserCollapsatorBackgroundActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserCollapsatorBackgroundActionPerformed
private void spinnerCollapsatorSizeStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerCollapsatorSizeStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_spinnerCollapsatorSizeStateChanged
private void updateFontButton(@Nonnull final JButton button, @Nonnull final Font font) {
final String strStyle;
if (font.isBold()) {
strStyle = font.isItalic() ? "bolditalic" : "bold"; //NOI18N
} else {
strStyle = font.isItalic() ? "italic" : "plain"; //NOI18N
}
button.setText(font.getName() + ", " + strStyle + ", " + font.getSize()); //NOI18N
}
private void buttonFontActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonFontActionPerformed
final FontSelector fontSelector = new FontSelector(this.config.getFont());
if (DialogProviderManager.getInstance().getDialogProvider().msgOkCancel("Select font", fontSelector)) {
final Font selectedFont = fontSelector.getValue();
this.config.setFont(selectedFont);
this.fontMindMapEditor = selectedFont;
updateFontButton(this.buttonFont, selectedFont);
if (this.changeNotificationAllowed) {
this.changed = true;
}
}
}//GEN-LAST:event_buttonFontActionPerformed
private void buttonAboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAboutActionPerformed
JOptionPane.showMessageDialog(Main.getApplicationFrame(), new AboutPanel(), "About", JOptionPane.PLAIN_MESSAGE);
}//GEN-LAST:event_buttonAboutActionPerformed
private void colorChooserJumpLinkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserJumpLinkActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserJumpLinkActionPerformed
private void spinnerJumpLinkWidthStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerJumpLinkWidthStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_spinnerJumpLinkWidthStateChanged
private void buttonOpenShortcutEditorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOpenShortcutEditorActionPerformed
final List<KeyShortcut> list = new ArrayList<>();
for (final Map.Entry<String, KeyShortcut> e : this.mapKeyShortCuts.entrySet()) {
list.add(e.getValue());
}
final KeyShortCutEditPanel panel = new KeyShortCutEditPanel(list);
if (DialogProviderManager.getInstance().getDialogProvider().msgOkCancel("Edit shortcuts", panel)) {
for (final KeyShortcut s : panel.getResult()) {
this.mapKeyShortCuts.put(s.getID(), s);
}
if (this.changeNotificationAllowed) {
this.changed = true;
}
}
}//GEN-LAST:event_buttonOpenShortcutEditorActionPerformed
private void checkBoxScalingCTRLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxScalingCTRLActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxScalingCTRLActionPerformed
private void checkBoxScalingALTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxScalingALTActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxScalingALTActionPerformed
private void checkBoxScalingSHIFTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxScalingSHIFTActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxScalingSHIFTActionPerformed
private void checkBoxScalingMETAActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxScalingMETAActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxScalingMETAActionPerformed
private void checkBoxKnowledgeFolderAutogenerationAllowedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxKnowledgeFolderAutogenerationAllowedActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxKnowledgeFolderAutogenerationAllowedActionPerformed
private void checkBoxCopyColorInfoToNewAllowedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxCopyColorInfoToNewAllowedActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxCopyColorInfoToNewAllowedActionPerformed
private void checkBoxUnfoldCollapsedTargetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxUnfoldCollapsedTargetActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxUnfoldCollapsedTargetActionPerformed
private void checkboxRelativePathsForFilesInTheProjectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkboxRelativePathsForFilesInTheProjectActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkboxRelativePathsForFilesInTheProjectActionPerformed
private void checkboxUseInsideBrowserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkboxUseInsideBrowserActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkboxUseInsideBrowserActionPerformed
private void spinnerElementBorderWidthStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerElementBorderWidthStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_spinnerElementBorderWidthStateChanged
private void slider2ndLevelVertGapStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slider2ndLevelVertGapStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_slider2ndLevelVertGapStateChanged
private void slider2ndLevelHorzGapStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slider2ndLevelHorzGapStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_slider2ndLevelHorzGapStateChanged
private void slider1stLevelVertGapStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slider1stLevelVertGapStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_slider1stLevelVertGapStateChanged
private void slider1stLevelHorzGapStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slider1stLevelHorzGapStateChanged
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_slider1stLevelHorzGapStateChanged
private void colorChooser2ndTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooser2ndTextActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooser2ndTextActionPerformed
private void colorChooser2ndBackgroundActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooser2ndBackgroundActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooser2ndBackgroundActionPerformed
private void colorChooser1stTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooser1stTextActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooser1stTextActionPerformed
private void colorChooser1stBackgroundActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooser1stBackgroundActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooser1stBackgroundActionPerformed
private void colorChooserRootTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserRootTextActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserRootTextActionPerformed
private void colorChooserRootBackgroundActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorChooserRootBackgroundActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_colorChooserRootBackgroundActionPerformed
private void checkBoxDropShadowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBoxDropShadowActionPerformed
if (this.changeNotificationAllowed) {
this.changed = true;
}
}//GEN-LAST:event_checkBoxDropShadowActionPerformed
private void buttonResetToDefaultActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonResetToDefaultActionPerformed
loadFrom(new MindMapPanelConfig(),PreferencesManager.getInstance().getPreferences());
this.fontTextEditor = TextEditor.DEFAULT_FONT;
updateFontButton(this.buttonFontForEditor, this.fontTextEditor);
}//GEN-LAST:event_buttonResetToDefaultActionPerformed
private void buttonFontForEditorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonFontForEditorActionPerformed
final FontSelector fontSelector = new FontSelector(this.fontTextEditor);
if (DialogProviderManager.getInstance().getDialogProvider().msgOkCancel("Select Text editor font", fontSelector)) {
this.fontTextEditor = fontSelector.getValue();
updateFontButton(this.buttonFontForEditor, fontSelector.getValue());
if (this.changeNotificationAllowed) {
this.changed = true;
}
}
}//GEN-LAST:event_buttonFontForEditorActionPerformed
private void buttonExportToFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExportToFileActionPerformed
File file = DialogProviderManager.getInstance().getDialogProvider().msgSaveFileDialog("exportProperties", "Export settings", null, true, new PropertiesFileFilter(), "Save");
if (file != null) {
if (!file.getName().toLowerCase(Locale.ENGLISH).endsWith(".properties")){ //NOI18N
final Boolean addExt = DialogProviderManager.getInstance().getDialogProvider().msgConfirmYesNoCancel("Add extension", "Add '.properties' extension?");
if (addExt == null) return;
if (addExt){
file = new File(file.getAbsolutePath()+".properties"); //NOI18N
}
}
if (file.exists() && !DialogProviderManager.getInstance().getDialogProvider().msgConfirmOkCancel("Override file", String.format("File %s exists, to override it?",file.getName()))){
return;
}
final PropertiesPreferences prefs = new PropertiesPreferences("SciaReto editor settings");
final MindMapPanelConfig cfg = fillBySettings(new MindMapPanelConfig(),prefs);
cfg.saveTo(prefs);
try {
FileUtils.write(file, prefs.toString());
}
catch (final Exception ex) {
LOGGER.error("Can't export settings", ex); //NOI18N
DialogProviderManager.getInstance().getDialogProvider().msgError("Can't export settings [" + ex.getMessage() + ']'); //NOI18N
}
}
}//GEN-LAST:event_buttonExportToFileActionPerformed
private void buttonImportFromFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonImportFromFileActionPerformed
final File file = DialogProviderManager.getInstance().getDialogProvider().msgOpenFileDialog("importProperties", "Import settings", null, true, new PropertiesFileFilter(), "Open");
if (file != null) {
try {
load(new PropertiesPreferences("SciaReto", FileUtils.readFileToString(file)));
}
catch (final Exception ex) {
LOGGER.error("Can't import settings", ex); //NOI18N
DialogProviderManager.getInstance().getDialogProvider().msgError("Can't import settings [" + ex.getMessage() + ']');
}
}
}//GEN-LAST:event_buttonImportFromFileActionPerformed
public void load(@Nonnull final Preferences preferences) {
this.config.loadFrom(preferences);
loadFrom(this.config,preferences);
this.changeNotificationAllowed = false;
try {
// Common behaviour options
this.checkboxUseInsideBrowser.setSelected(preferences.getBoolean("useInsideBrowser", false)); //NOI18N
this.checkboxRelativePathsForFilesInTheProject.setSelected(preferences.getBoolean("makeRelativePathToProject", true)); //NOI18N
this.checkBoxUnfoldCollapsedTarget.setSelected(preferences.getBoolean("unfoldCollapsedTarget", true)); //NOI18N
this.checkBoxCopyColorInfoToNewAllowed.setSelected(preferences.getBoolean("copyColorInfoToNewChildAllowed", true)); //NOI18N
this.checkBoxKnowledgeFolderAutogenerationAllowed.setSelected(preferences.getBoolean(PREFERENCE_KEY_KNOWLEDGEFOLDER_ALLOWED, true));
// Metrics
this.checkboxMetricsAllowed.setSelected(MetricsService.getInstance().isEnabled());
}
finally {
this.changeNotificationAllowed = true;
}
}
private void loadFrom(@Nonnull final MindMapPanelConfig config, @Nonnull final Preferences prefs) {
this.changeNotificationAllowed = false;
try {
this.checkBoxShowGrid.setSelected(config.isShowGrid());
this.checkBoxDropShadow.setSelected(config.isDropShadow());
this.colorChooserPaperColor.setValue(config.getPaperColor());
this.colorChooserGridColor.setValue(config.getGridColor());
this.colorChooserConnectorColor.setValue(config.getConnectorColor());
this.colorChooserJumpLink.setValue(config.getJumpLinkColor());
this.colorChooserRootBackground.setValue(config.getRootBackgroundColor());
this.colorChooserRootText.setValue(config.getRootTextColor());
this.colorChooser1stBackground.setValue(config.getFirstLevelBackgroundColor());
this.colorChooser1stText.setValue(config.getFirstLevelTextColor());
this.colorChooser2ndBackground.setValue(config.getOtherLevelBackgroundColor());
this.colorChooser2ndText.setValue(config.getOtherLevelTextColor());
this.colorChooserSelectLine.setValue(config.getSelectLineColor());
this.spinnerGridStep.setValue(config.getGridStep());
this.spinnerSelectLineGap.setValue(config.getSelectLineGap());
this.spinnerConnectorWidth.setValue(config.getConnectorWidth());
this.spinnerJumpLinkWidth.setValue(config.getJumpLinkWidth());
this.spinnerCollapsatorWidth.setValue(config.getCollapsatorBorderWidth());
this.spinnerCollapsatorSize.setValue(config.getCollapsatorSize());
this.spinnerElementBorderWidth.setValue(config.getElementBorderWidth());
this.colorChooserCollapsatorBackground.setValue(config.getCollapsatorBackgroundColor());
this.colorChooserCollapsatorBorder.setValue(config.getCollapsatorBorderColor());
this.spinnerSelectLineWidth.setValue(config.getSelectLineWidth());
this.slider1stLevelHorzGap.setValue(config.getFirstLevelHorizontalInset());
this.slider1stLevelVertGap.setValue(config.getFirstLevelVerticalInset());
this.slider2ndLevelHorzGap.setValue(config.getOtherLevelHorizontalInset());
this.slider2ndLevelVertGap.setValue(config.getOtherLevelVerticalInset());
this.mapKeyShortCuts.clear();
this.mapKeyShortCuts.putAll(config.getKeyShortcutMap());
setScalingModifiers(config.getScaleModifiers());
this.fontMindMapEditor = config.getFont();
updateFontButton(this.buttonFont, this.fontMindMapEditor);
this.fontTextEditor = Assertions.assertNotNull(PreferencesManager.getInstance().getFont(prefs, SpecificKeys.PROPERTY_TEXT_EDITOR_FONT, TextEditor.DEFAULT_FONT));
updateFontButton(this.buttonFontForEditor, this.fontTextEditor);
}
finally {
this.changeNotificationAllowed = true;
}
}
@Nonnull
@ReturnsOriginal
private MindMapPanelConfig fillBySettings(@Nonnull final MindMapPanelConfig config, @Nonnull final Preferences preferences) {
config.setShowGrid(this.checkBoxShowGrid.isSelected());
config.setDropShadow(this.checkBoxDropShadow.isSelected());
config.setPaperColor(Assertions.assertNotNull(this.colorChooserPaperColor.getValue()));
config.setGridColor(Assertions.assertNotNull(this.colorChooserGridColor.getValue()));
config.setConnectorColor(Assertions.assertNotNull(this.colorChooserConnectorColor.getValue()));
config.setJumpLinkColor(Assertions.assertNotNull(this.colorChooserJumpLink.getValue()));
config.setRootBackgroundColor(Assertions.assertNotNull(this.colorChooserRootBackground.getValue()));
config.setRootTextColor(Assertions.assertNotNull(this.colorChooserRootText.getValue()));
config.setFirstLevelBackgroundColor(Assertions.assertNotNull(this.colorChooser1stBackground.getValue()));
config.setFirstLevelTextColor(Assertions.assertNotNull(this.colorChooser1stText.getValue()));
config.setOtherLevelBackgroundColor(Assertions.assertNotNull(this.colorChooser2ndBackground.getValue()));
config.setOtherLevelTextColor(Assertions.assertNotNull(this.colorChooser2ndText.getValue()));
config.setSelectLineColor(Assertions.assertNotNull(this.colorChooserSelectLine.getValue()));
config.setCollapsatorBackgroundColor(Assertions.assertNotNull(this.colorChooserCollapsatorBackground.getValue()));
config.setCollapsatorBorderColor(Assertions.assertNotNull(this.colorChooserCollapsatorBorder.getValue()));
config.setGridStep((Integer) this.spinnerGridStep.getValue());
config.setSelectLineGap((Integer) this.spinnerSelectLineGap.getValue());
config.setCollapsatorSize((Integer) this.spinnerCollapsatorSize.getValue());
config.setConnectorWidth((Float) this.spinnerConnectorWidth.getValue());
config.setJumpLinkWidth((Float) this.spinnerJumpLinkWidth.getValue());
config.setSelectLineWidth((Float) this.spinnerSelectLineWidth.getValue());
config.setCollapsatorBorderWidth((Float) this.spinnerCollapsatorWidth.getValue());
config.setElementBorderWidth((Float) this.spinnerElementBorderWidth.getValue());
config.setFirstLevelHorizontalInset(this.slider1stLevelHorzGap.getValue());
config.setFirstLevelVerticalInset(this.slider1stLevelVertGap.getValue());
config.setOtherLevelHorizontalInset(this.slider2ndLevelHorzGap.getValue());
config.setOtherLevelVerticalInset(this.slider2ndLevelVertGap.getValue());
config.setFont(this.fontMindMapEditor);
for (final Map.Entry<String, KeyShortcut> e : this.mapKeyShortCuts.entrySet()) {
config.setKeyShortCut(e.getValue());
}
config.setScaleModifiers(getScalingModifiers());
config.saveTo(preferences);
// Common behaviour options
preferences.putBoolean("useInsideBrowser", this.checkboxUseInsideBrowser.isSelected()); //NOI18N
preferences.putBoolean("makeRelativePathToProject", this.checkboxRelativePathsForFilesInTheProject.isSelected()); //NOI18N
preferences.putBoolean("unfoldCollapsedTarget", this.checkBoxUnfoldCollapsedTarget.isSelected()); //NOI18N
preferences.putBoolean("copyColorInfoToNewChildAllowed", this.checkBoxCopyColorInfoToNewAllowed.isSelected()); //NOI18N
preferences.putBoolean(PREFERENCE_KEY_KNOWLEDGEFOLDER_ALLOWED, this.checkBoxKnowledgeFolderAutogenerationAllowed.isSelected());
PreferencesManager.getInstance().setFont(preferences, SpecificKeys.PROPERTY_TEXT_EDITOR_FONT, fontTextEditor);
// Metrics
MetricsService.getInstance().setEnabled(this.checkboxMetricsAllowed.isSelected());
return config;
}
public void save() {
final MindMapPanelConfig config = this.config;
if (config != null) {
try {
fillBySettings(config,PreferencesManager.getInstance().getPreferences());
PreferencesManager.getInstance().flush();
}
finally {
context.notifyReloadConfig();
}
}
}
private void setScalingModifiers(final int value) {
this.checkBoxScalingALT.setSelected((value & KeyEvent.ALT_MASK) != 0);
this.checkBoxScalingCTRL.setSelected((value & KeyEvent.CTRL_MASK) != 0);
this.checkBoxScalingMETA.setSelected((value & KeyEvent.META_MASK) != 0);
this.checkBoxScalingSHIFT.setSelected((value & KeyEvent.SHIFT_MASK) != 0);
}
private int getScalingModifiers() {
return (this.checkBoxScalingALT.isSelected() ? KeyEvent.ALT_MASK : 0)
| (this.checkBoxScalingCTRL.isSelected() ? KeyEvent.CTRL_MASK : 0)
| (this.checkBoxScalingMETA.isSelected() ? KeyEvent.ALT_MASK : 0)
| (this.checkBoxScalingSHIFT.isSelected() ? KeyEvent.SHIFT_MASK : 0);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonAbout;
private javax.swing.JButton buttonExportToFile;
private javax.swing.JButton buttonFont;
private javax.swing.JButton buttonFontForEditor;
private javax.swing.JButton buttonImportFromFile;
private javax.swing.JButton buttonOpenShortcutEditor;
private javax.swing.JButton buttonResetToDefault;
private javax.swing.JCheckBox checkBoxCopyColorInfoToNewAllowed;
private javax.swing.JCheckBox checkBoxDropShadow;
private javax.swing.JCheckBox checkBoxKnowledgeFolderAutogenerationAllowed;
private javax.swing.JCheckBox checkBoxScalingALT;
private javax.swing.JCheckBox checkBoxScalingCTRL;
private javax.swing.JCheckBox checkBoxScalingMETA;
private javax.swing.JCheckBox checkBoxScalingSHIFT;
private javax.swing.JCheckBox checkBoxShowGrid;
private javax.swing.JCheckBox checkBoxUnfoldCollapsedTarget;
private javax.swing.JCheckBox checkboxMetricsAllowed;
private javax.swing.JCheckBox checkboxRelativePathsForFilesInTheProject;
private javax.swing.JCheckBox checkboxUseInsideBrowser;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooser1stBackground;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooser1stText;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooser2ndBackground;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooser2ndText;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserCollapsatorBackground;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserCollapsatorBorder;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserConnectorColor;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserGridColor;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserJumpLink;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserPaperColor;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserRootBackground;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserRootText;
private com.igormaznitsa.sciareto.ui.misc.ColorChooserButton colorChooserSelectLine;
private com.igormaznitsa.sciareto.ui.misc.DonateButton donateButton1;
private javax.swing.Box.Filler filler1;
private javax.swing.Box.Filler filler2;
private javax.swing.Box.Filler filler3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel labelBorderWidth;
private javax.swing.JPanel panelScalingModifiers;
private javax.swing.JSlider slider1stLevelHorzGap;
private javax.swing.JSlider slider1stLevelVertGap;
private javax.swing.JSlider slider2ndLevelHorzGap;
private javax.swing.JSlider slider2ndLevelVertGap;
private javax.swing.JSpinner spinnerCollapsatorSize;
private javax.swing.JSpinner spinnerCollapsatorWidth;
private javax.swing.JSpinner spinnerConnectorWidth;
private javax.swing.JSpinner spinnerElementBorderWidth;
private javax.swing.JSpinner spinnerGridStep;
private javax.swing.JSpinner spinnerJumpLinkWidth;
private javax.swing.JSpinner spinnerSelectLineGap;
private javax.swing.JSpinner spinnerSelectLineWidth;
// End of variables declaration//GEN-END:variables
}