[Buix-commits] r299 - in trunk/lutinvcs: lutinvcs-core/src/main/java/org/codelutin/vcs/ui/model lutinvcs-ui/src/main/java/org/codelutin/vcs/ui lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/action
Author: tchemit Date: 2008-04-02 14:35:41 +0000 (Wed, 02 Apr 2008) New Revision: 299 Modified: trunk/lutinvcs/lutinvcs-core/src/main/java/org/codelutin/vcs/ui/model/AbstractVCSFileStatesModel.java trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/SynchUIHandler.java trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/action/VCSPopupAction.java Log: mise en place filtre sur selectionModel et action (pour les actions de la popup : on poss?\195?\168de deja une selection de lignes puis on sous-filtre sur l'action) Modified: trunk/lutinvcs/lutinvcs-core/src/main/java/org/codelutin/vcs/ui/model/AbstractVCSFileStatesModel.java =================================================================== --- trunk/lutinvcs/lutinvcs-core/src/main/java/org/codelutin/vcs/ui/model/AbstractVCSFileStatesModel.java 2008-04-02 09:15:47 UTC (rev 298) +++ trunk/lutinvcs/lutinvcs-core/src/main/java/org/codelutin/vcs/ui/model/AbstractVCSFileStatesModel.java 2008-04-02 14:35:41 UTC (rev 299) @@ -143,17 +143,30 @@ return list.toArray(new VCSFileState[list.size()]); } - public void select(VCSAction action, ListSelectionModel selectionModel) { + /** + * restrict in model, only lines with given action enabled + * + * @param action current action to filter + * @param selectionModel current selection where to filter + * @param reset if <code>true</code> means take + */ + public void select(VCSAction action, ListSelectionModel selectionModel, boolean reset) { if (isEmpty()) { return; } selectionModel.setValueIsAdjusting(true); - selectionModel.clearSelection(); + if (reset) { + selectionModel.clearSelection(); + } for (int i = 0; i < data.size(); i++) { VCSFileState fileState = data.get(i); List<VCSAction> actions = fileState.getState().getActions(); - if (actions.contains(action)) { - selectionModel.addSelectionInterval(i, i); + if (reset) { + if (actions.contains(action)) { + selectionModel.addSelectionInterval(i, i); + } + } else if (!actions.contains(action)) { + selectionModel.removeSelectionInterval(i, i); } } selectionModel.setValueIsAdjusting(false); Modified: trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/SynchUIHandler.java =================================================================== --- trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/SynchUIHandler.java 2008-04-02 09:15:47 UTC (rev 298) +++ trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/SynchUIHandler.java 2008-04-02 14:35:41 UTC (rev 299) @@ -60,7 +60,7 @@ log.info("refresh :" + model.size()); model.refresh(model.getStates()); } else { - model.select(action, selectionModel); + model.select(action, selectionModel, true); // do action on selected items doSelectAction(action, model); } Modified: trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/action/VCSPopupAction.java =================================================================== --- trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/action/VCSPopupAction.java 2008-04-02 09:15:47 UTC (rev 298) +++ trunk/lutinvcs/lutinvcs-ui/src/main/java/org/codelutin/vcs/ui/action/VCSPopupAction.java 2008-04-02 14:35:41 UTC (rev 299) @@ -38,8 +38,12 @@ } public void actionPerformed(ActionEvent e) { - model.select(action, selectionModel); + // select only lines for this action inside already selected lines + model.select(action, selectionModel, false); + // obtain thoses lines VCSFileState[] states = model.getData(selectionModel); + // do real vcs action on thoses lines + //TODO delegate to VCSActionThread ? log.info("files to treate :" + states.length); } }
participants (1)
-
tchemit@users.labs.libre-entreprise.org