public void processChangeLists(final List<LocalChangeList> lists) { final ProjectLevelVcsManager plVcsManager = ProjectLevelVcsManager.getInstanceChecked(myProject); plVcsManager.startBackgroundVcsOperation(); try { final SVNChangelistClient client = createChangelistClient(); for (LocalChangeList list : lists) { if (!list.isDefault()) { final Collection<Change> changes = list.getChanges(); for (Change change : changes) { correctListForRevision( plVcsManager, change.getBeforeRevision(), client, list.getName()); correctListForRevision(plVcsManager, change.getAfterRevision(), client, list.getName()); } } } } finally { final Application appManager = ApplicationManager.getApplication(); if (appManager.isDispatchThread()) { appManager.executeOnPooledThread( new Runnable() { @Override public void run() { plVcsManager.stopBackgroundVcsOperation(); } }); } else { plVcsManager.stopBackgroundVcsOperation(); } } }
@Override public void trackContext(LocalChangeList changeList) { ChangeListInfo changeListInfo = new ChangeListInfo(changeList); String changeListName = changeList.getName(); LocalTaskImpl task = createLocalTask(changeListName); task.addChangelist(changeListInfo); addTask(task); if (changeList.isDefault()) { activateTask(task, false); } }
public void testAddChangeListViaVcsAction() throws Exception { Task task = myRepository.findTask("TEST-001"); assertNotNull(task); activateAndCreateChangelist(task); myChangeListManager.waitUntilRefreshed(); LocalTask defaultTask = myTaskManager.findTask(LocalTaskImpl.DEFAULT_TASK_ID); assertNotNull(defaultTask); activateAndCreateChangelist(defaultTask); myChangeListManager.waitUntilRefreshed(); assertEquals(defaultTask, myTaskManager.getActiveTask()); LocalTask anotherTask = myTaskManager.findTask("TEST-001"); assertNotNull(anotherTask); addChangeList("Default (1)", ""); assertEquals(1, anotherTask.getChangeLists().size()); assertEquals(2, defaultTask.getChangeLists().size()); assertEquals(3, myChangeListManager.getChangeListsCopy().size()); LocalChangeList defaultChangeListActive = myChangeListManager.findChangeList(LocalChangeList.DEFAULT_NAME); assertNotNull(defaultChangeListActive); assertTrue(myChangeListManager.getDefaultListName(), defaultChangeListActive.isDefault()); LocalChangeList defaultChangeListInactive = myChangeListManager.findChangeList("Default (1)"); assertNotNull(defaultChangeListInactive); LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary"); assertNotNull(anotherChangeList); assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListActive)); assertEquals(LocalChangeList.DEFAULT_NAME, defaultChangeListActive.getName()); assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListInactive)); assertEquals("Default (1)", defaultChangeListInactive.getName()); assertEquals(anotherTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals("TEST-001 Summary", anotherChangeList.getName()); }
private void createChangelist(final ContinuationPause context) { final ChangeListManager listManager = ChangeListManager.getInstance(myProject); String name = myTitle; int i = 1; boolean updateDefaultList = false; while (true) { final LocalChangeList changeList = listManager.findChangeList(name); if (changeList == null) { final LocalChangeList newList = listManager.addChangeList(name, null); listManager.setDefaultChangeList(newList); updateDefaultList = true; break; } if (changeList.getChanges().isEmpty()) { if (!changeList.isDefault()) { listManager.setDefaultChangeList(changeList); updateDefaultList = true; } break; } name = myTitle + " (" + i + ")"; ++i; } if (updateDefaultList) { context.suspend(); listManager.invokeAfterUpdate( new Runnable() { public void run() { context.ping(); } }, InvokeAfterUpdateMode.BACKGROUND_NOT_CANCELLABLE_NOT_AWT, "", ModalityState.NON_MODAL); } }
@Override public void render( final ChangesBrowserNodeRenderer renderer, final boolean selected, final boolean expanded, final boolean hasFocus) { if (userObject instanceof LocalChangeList) { final LocalChangeList list = ((LocalChangeList) userObject); renderer.appendTextWithIssueLinks( list.getName(), list.isDefault() ? SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES : SimpleTextAttributes.REGULAR_ATTRIBUTES); appendCount(renderer); for (ChangeListDecorator decorator : myDecorators) { decorator.decorateChangeList(list, renderer, selected, expanded, hasFocus); } final String freezed = myClManager.isFreezed(); if (freezed != null) { renderer.append(" " + freezed, SimpleTextAttributes.GRAYED_ATTRIBUTES); } else if (myClManager.isInUpdate()) { renderer.append( " " + VcsBundle.message("changes.nodetitle.updating"), SimpleTextAttributes.GRAYED_ATTRIBUTES); } if (!myChangeListRemoteState.getState()) { renderer.append(" "); renderer.append( VcsBundle.message("changes.nodetitle.have.outdated.files"), SimpleTextAttributes.ERROR_ATTRIBUTES); } } else { renderer.append(getUserObject().getName(), SimpleTextAttributes.SIMPLE_CELL_ATTRIBUTES); appendCount(renderer); } }