import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
-import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
/** The “set default file” action. */
private I18nAction setDefaultFileAction;
- /** The “insert” action. */
- private I18nAction insertAction;
-
/** The “project files” label. */
private I18nLabel projectFilesLabel;
private JTextField fileSizeTextField;
/** The “override” label. */
- private I18nLabel overrideLabel;
-
- /** The “override active” action. */
- private I18nAction overrideAction;
-
- /** The “override action” checkbox. */
- private JCheckBox overrideCheckBox;
+ private I18nLabel fileSettingsLabel;
/** The context menu for the tree. */
private JPopupMenu treeContextMenu;
project.setDefaultFile(completePath);
}
};
- insertAction = new I18nAction("fileManager.menu.item.insert") {
-
- /**
- * {@inheritDoc}
- */
- public void actionPerformed(ActionEvent e) {
- /* TODO */
- }
- };
- overrideAction = new I18nAction("fileManager.checkbox.overrideActive") {
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent actionEvent) {
- /* TODO */
- }
- };
applyInsertOverrideAction = new I18nAction("fileManager.menu.item.applyInsertOverride") {
/**
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));
/* override settings. */
- overrideLabel = new I18nLabel("fileManager.label.override");
- overrideLabel.setFont(overrideLabel.getFont().deriveFont(Font.BOLD));
- propertiesPanel.add(overrideLabel, new GridBagConstraints(0, 4, 2, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(24, 0, 0, 0), 0, 0));
-
- overrideCheckBox = new JCheckBox(overrideAction);
- propertiesPanel.add(overrideCheckBox, new GridBagConstraints(0, 5, 2, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 24, 0, 0), 0, 0));
+ 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));
/* glue panel. */
- propertiesPanel.add(new JPanel(), new GridBagConstraints(0, 6, 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, 7, 2, 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));
if (!mouseEvent.isPopupTrigger()) {
return;
}
- Point eventLocation = mouseEvent.getPoint();
- TreePath[] selectedPaths = fileTree.getSelectionPaths();
- if ((selectedPaths == null) || (selectedPaths.length == 0)) {
- /* try to find item under click. */
- TreePath clickedPath = fileTree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
- if (clickedPath != null) {
- fileTree.setSelectionPath(clickedPath);
- selectedPaths = new TreePath[] { clickedPath };
- } else {
- logger.log(Level.FINER, "nothing selected for context menu");
- return;
- }
+ List<ProjectFileWrapper> selectedProjectFileWrappers = getSelectedProjectFileWrappers(false);
+ TreePath clickedPath = fileTree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
+ ProjectFileWrapper clickedProjectFileWrapper = (ProjectFileWrapper) clickedPath.getLastPathComponent();
+ if (!selectedProjectFileWrappers.contains(clickedProjectFileWrapper)) {
+ fileTree.setSelectionPath(clickedPath);
+ selectedProjectFileWrappers = getSelectedProjectFileWrappers(false);
}
- if (selectedPaths.length == 1) {
- ProjectFileWrapper projectFileWrapper = (ProjectFileWrapper) selectedPaths[0].getLastPathComponent();
+ if (selectedProjectFileWrappers.size() == 1) {
+ ProjectFileWrapper projectFileWrapper = selectedProjectFileWrappers.get(0);
ProjectFile projectFile = projectFileWrapper.getProjectFile();
setDefaultFileAction.setEnabled(!isHidden(projectFileWrapper) && projectFile.isFile() && !projectFile.getCompletePath().equals(project.getDefaultFile()));
} else {
setDefaultFileAction.setEnabled(false);
}
- treeContextMenu.show(fileTree, eventLocation.x, eventLocation.y);
+ overrideMenu.setVisible(selectedProjectFileWrappers.size() > 1);
+ treeContextMenu.show(fileTree, mouseEvent.getX(), mouseEvent.getY());
}
/**
private List<ProjectFileWrapper> getSelectedProjectFileWrappers(boolean filesOnly) {
List<ProjectFileWrapper> selectedProjectFileWrappers = new ArrayList<ProjectFileWrapper>();
TreePath[] selectedPaths = fileTree.getSelectionPaths();
- for (TreePath selectedPath : selectedPaths) {
- ProjectFileWrapper projectFileWrapper = (ProjectFileWrapper) selectedPath.getLastPathComponent();
- if (filesOnly && !projectFileWrapper.getProjectFile().isFile()) {
- continue;
+ if (selectedPaths != null) {
+ for (TreePath selectedPath : selectedPaths) {
+ ProjectFileWrapper projectFileWrapper = (ProjectFileWrapper) selectedPath.getLastPathComponent();
+ if (filesOnly && !projectFileWrapper.getProjectFile().isFile()) {
+ continue;
+ }
+ selectedProjectFileWrappers.add(projectFileWrapper);
}
- selectedProjectFileWrappers.add(projectFileWrapper);
}
return selectedProjectFileWrappers;
}
filePathTextField.setText("");
fileNameTextField.setText("");
fileSizeTextField.setText("");
- overrideAction.setEnabled(false);
if ((selectedPaths != null) && (selectedPaths.length == 1)) {
Object lastPathComponent = selectedPaths[0].getLastPathComponent();
if (!(lastPathComponent instanceof ProjectFileWrapper)) {
fileNameTextField.setText(projectFile.getName());
fileSizeTextField.setText(String.valueOf(projectFile.getSize()));
}
- overrideAction.setEnabled(true);
} else if ((selectedPaths != null) && (selectedPaths.length > 1)) {
+ /* TODO */
}
}