import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
/** The “override” label. */
private I18nLabel fileSettingsLabel;
+ /** The “insert default” label. */
+ private I18nLabel insertDefaultLabel;
+
+ /** The “insert default” checkbox. */
+ private JCheckBox insertDefaultCheckBox;
+
+ /** The “override insert default” action. */
+ private I18nAction overrideInsertDefaultAction;
+
+ /** The “override insert default” checkbox. */
+ private JCheckBox overrideInsertDefaultCheckBox;
+
+ /** The “override insert” action. */
+ private Action insertOverrideAction;
+
+ /** The “override insert” checkbox. */
+ private JCheckBox insertOverrideCheckBox;
+
/** The context menu for the tree. */
private JPopupMenu treeContextMenu;
removeOverride();
}
};
+ overrideInsertDefaultAction = new I18nAction("fileManager.checkbox.overrideInsertDefault") {
+
+ /**
+ * {@inheritDoc}
+ */
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ boolean overrideInsert = overrideInsertDefaultCheckBox.isSelected();
+ insertOverrideAction.setEnabled(overrideInsert);
+ List<ProjectFileWrapper> selectedProjectFileWrappers = getSelectedProjectFileWrappers(true);
+ ProjectFileWrapper projectFileWrapper = selectedProjectFileWrappers.get(0);
+ ProjectFile projectFile = projectFileWrapper.getProjectFile();
+ FileOverride fileOverride = project.getFileOverride(projectFile);
+ if (overrideInsert) {
+ if (fileOverride == null) {
+ fileOverride = new FileOverride();
+ project.addFileOverride(projectFile, fileOverride);
+ fileOverride.setInsert(!projectFile.isHidden());
+ }
+ } else {
+ fileOverride.setInsert(null);
+ if (fileOverride.isEmpty()) {
+ project.removeFileOverride(projectFile);
+ }
+ }
+ }
+ };
+ insertOverrideAction = new AbstractAction() {
+
+ /**
+ * {@inheritDoc}
+ */
+ public void actionPerformed(ActionEvent actionEvent) {
+ boolean insertOverride = insertOverrideCheckBox.isSelected();
+ List<ProjectFileWrapper> selectedProjectFileWrappers = getSelectedProjectFileWrappers(true);
+ ProjectFileWrapper projectFileWrapper = selectedProjectFileWrappers.get(0);
+ ProjectFile projectFile = projectFileWrapper.getProjectFile();
+ FileOverride fileOverride = project.getFileOverride(projectFile);
+ fileOverride.setInsert(insertOverride);
+ }
+ };
+ insertOverrideAction.setEnabled(false);
}
/**
filePropertiesLabel = new I18nLabel("fileManager.label.fileProperties");
filePropertiesLabel.setFont(filePropertiesLabel.getFont().deriveFont(Font.BOLD));
- propertiesPanel.add(filePropertiesLabel, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
+ propertiesPanel.add(filePropertiesLabel, new GridBagConstraints(0, 0, 4, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
filePathLabel = new I18nLabel("fileManager.label.filePath");
filePathTextField = new JTextField();
filePathTextField.setEditable(false);
propertiesPanel.add(filePathLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 24, 0, 0), 0, 0));
- propertiesPanel.add(filePathTextField, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
+ propertiesPanel.add(filePathTextField, new GridBagConstraints(1, 1, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
fileNameLabel = new I18nLabel("fileManager.label.fileName");
fileNameTextField = new JTextField();
fileNameTextField.setEditable(false);
propertiesPanel.add(fileNameLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 24, 0, 0), 0, 0));
- propertiesPanel.add(fileNameTextField, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
+ propertiesPanel.add(fileNameTextField, new GridBagConstraints(1, 2, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
fileSizeLabel = new I18nLabel("fileManager.label.fileSize");
fileSizeTextField = new JTextField();
fileSizeTextField.setEditable(false);
propertiesPanel.add(fileSizeLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 24, 0, 0), 0, 0));
- propertiesPanel.add(fileSizeTextField, new GridBagConstraints(1, 3, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
+ propertiesPanel.add(fileSizeTextField, new GridBagConstraints(1, 3, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
- /* override settings. */
+ /* file settings. */
fileSettingsLabel = new I18nLabel("fileManager.label.fileSettings");
fileSettingsLabel.setFont(fileSettingsLabel.getFont().deriveFont(Font.BOLD));
- propertiesPanel.add(fileSettingsLabel, new GridBagConstraints(0, 4, 2, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(24, 0, 0, 0), 0, 0));
+ propertiesPanel.add(fileSettingsLabel, new GridBagConstraints(0, 4, 4, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(24, 0, 0, 0), 0, 0));
+
+ insertDefaultLabel = new I18nLabel("fileManager.label.insertDefault");
+ propertiesPanel.add(insertDefaultLabel, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 24, 0, 0), 0, 0));
+ insertDefaultCheckBox = new JCheckBox();
+ insertDefaultCheckBox.setEnabled(false);
+ propertiesPanel.add(insertDefaultCheckBox, new GridBagConstraints(1, 5, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
+ overrideInsertDefaultCheckBox = new JCheckBox(overrideInsertDefaultAction);
+ propertiesPanel.add(overrideInsertDefaultCheckBox, new GridBagConstraints(2, 5, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
+ insertOverrideCheckBox = new JCheckBox(insertOverrideAction);
+ propertiesPanel.add(insertOverrideCheckBox, new GridBagConstraints(3, 5, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0));
/* glue panel. */
- propertiesPanel.add(new JPanel(), new GridBagConstraints(0, 7, 2, 1, 1.0, 1.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
+ propertiesPanel.add(new JPanel(), new GridBagConstraints(0, 6, 4, 1, 1.0, 1.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
/* action button panel */
JPanel actionButtonPanel = new JPanel(new FlowLayout(FlowLayout.LEADING, 12, 12));
* {@inheritDoc}
*/
public void valueChanged(TreeSelectionEvent treeSelectionEvent) {
- TreePath[] selectedPaths = fileTree.getSelectionPaths();
+ List<ProjectFileWrapper> selectedProjectFileWrappers = getSelectedProjectFileWrappers(true);
filePathTextField.setText("");
fileNameTextField.setText("");
fileSizeTextField.setText("");
- if ((selectedPaths != null) && (selectedPaths.length == 1)) {
- Object lastPathComponent = selectedPaths[0].getLastPathComponent();
- if (!(lastPathComponent instanceof ProjectFileWrapper)) {
- logger.log(Level.SEVERE, "lastPathComponent is not a ProjectFileWrapper!");
- return;
- }
- ProjectFileWrapper projectFileWrapper = (ProjectFileWrapper) lastPathComponent;
+ if (selectedProjectFileWrappers.size() == 1) {
+ ProjectFileWrapper projectFileWrapper = selectedProjectFileWrappers.get(0);
ProjectFile projectFile = projectFileWrapper.getProjectFile();
if (projectFile.isFile()) {
String completePath = projectFile.getCompletePath();
}
fileNameTextField.setText(projectFile.getName());
fileSizeTextField.setText(String.valueOf(projectFile.getSize()));
+ overrideInsertDefaultCheckBox.setEnabled(true);
+ insertDefaultCheckBox.setSelected(!projectFile.isHidden());
+ FileOverride fileOverride = project.getFileOverride(projectFile);
+ if (fileOverride != null) {
+ Boolean overrideInsert = fileOverride.isInsert();
+ insertOverrideCheckBox.setEnabled(overrideInsert != null);
+ if (overrideInsert != null) {
+ overrideInsertDefaultCheckBox.setSelected(true);
+ insertOverrideCheckBox.setSelected(overrideInsert);
+ } else {
+ overrideInsertDefaultCheckBox.setSelected(false);
+ insertOverrideCheckBox.setSelected(!projectFile.isHidden());
+ }
+ } else {
+ overrideInsertDefaultCheckBox.setSelected(false);
+ insertOverrideCheckBox.setEnabled(false);
+ insertOverrideCheckBox.setSelected(!projectFile.isHidden());
+ }
}
- } else if ((selectedPaths != null) && (selectedPaths.length > 1)) {
- /* TODO */
+ } else if (selectedProjectFileWrappers.size() > 1) {
+ insertDefaultCheckBox.setEnabled(false);
+ insertDefaultCheckBox.setSelected(false);
+ overrideInsertDefaultAction.setEnabled(false);
+ overrideInsertDefaultCheckBox.setSelected(false);
+ insertOverrideAction.setEnabled(false);
+ insertOverrideCheckBox.setSelected(false);
}
}
}
ProjectFileWrapper projectFileWrapper = (ProjectFileWrapper) value;
ProjectFile projectFile = projectFileWrapper.getProjectFile();
+ FileOverride fileOverride = project.getFileOverride(projectFile);
String completePath = projectFile.getCompletePath();
boolean paintBold = false;
boolean paintHalfColor = false;
- if (projectFile.isFile() && projectFile.isHidden()) {
- /* TODO - check override */
+ boolean showFile = !projectFile.isHidden();
+ if (fileOverride != null) {
+ Boolean insertOverride = fileOverride.isInsert();
+ if (insertOverride != null) {
+ showFile = insertOverride;
+ }
+ }
+ if (projectFile.isFile() && !showFile) {
paintHalfColor = true;
} else if (completePath.equals(project.getDefaultFile())) {
paintBold = true;