shelf: refactoring - change SHELVED_CHANGELIST data keys to list

This commit is contained in:
Nadya Zabrodina
2018-11-06 20:24:36 +03:00
parent f959ab0d4c
commit c68efae239
2 changed files with 18 additions and 27 deletions
@@ -6,8 +6,11 @@ import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
public class RestoreShelvedChange extends DumbAwareAction {
public RestoreShelvedChange() {
super("Restore");
@@ -16,18 +19,19 @@ public class RestoreShelvedChange extends DumbAwareAction {
@Override
public void update(@NotNull final AnActionEvent e) {
final Project project = e.getData(CommonDataKeys.PROJECT);
final ShelvedChangeList[] recycledChanges = e.getData(ShelvedChangesViewManager.SHELVED_RECYCLED_CHANGELIST_KEY);
final Collection<ShelvedChangeList> recycledChanges = e.getData(ShelvedChangesViewManager.SHELVED_RECYCLED_CHANGELIST_KEY);
e.getPresentation().setText(VcsBundle.message("vcs.shelf.action.restore.text"));
e.getPresentation().setDescription(VcsBundle.message("vcs.shelf.action.restore.description"));
e.getPresentation().setEnabled((project != null) && ((recycledChanges != null) && (recycledChanges.length == 1)));
e.getPresentation().setEnabled(project != null && recycledChanges != null);
}
@Override
public void actionPerformed(@NotNull final AnActionEvent e) {
final Project project = e.getData(CommonDataKeys.PROJECT);
final ShelvedChangeList[] recycledChanges = e.getData(ShelvedChangesViewManager.SHELVED_RECYCLED_CHANGELIST_KEY);
if (recycledChanges != null && recycledChanges.length == 1) {
ShelveChangesManager.getInstance(project).restoreList(recycledChanges[0]);
final Project project = e.getRequiredData(CommonDataKeys.PROJECT);
final Collection<ShelvedChangeList> recycledChanges = e.getData(ShelvedChangesViewManager.SHELVED_RECYCLED_CHANGELIST_KEY);
if (recycledChanges != null && recycledChanges.size() == 1) {
//noinspection ConstantConditions
ShelveChangesManager.getInstance(project).restoreList(ContainerUtil.getFirstItem(recycledChanges));
}
}
}
@@ -99,8 +99,10 @@ public class ShelvedChangesViewManager implements Disposable {
private final MergingUpdateQueue myUpdateQueue;
private final VcsConfiguration myVcsConfiguration;
public static final DataKey<ShelvedChangeList[]> SHELVED_CHANGELIST_KEY = DataKey.create("ShelveChangesManager.ShelvedChangeListData");
public static final DataKey<ShelvedChangeList[]> SHELVED_RECYCLED_CHANGELIST_KEY = DataKey.create("ShelveChangesManager.ShelvedRecycledChangeListData");
public static final DataKey<List<ShelvedChangeList>> SHELVED_CHANGELIST_KEY =
DataKey.create("ShelveChangesManager.ShelvedChangeListData");
public static final DataKey<List<ShelvedChangeList>> SHELVED_RECYCLED_CHANGELIST_KEY =
DataKey.create("ShelveChangesManager.ShelvedRecycledChangeListData");
public static final DataKey<List<ShelvedChange>> SHELVED_CHANGE_KEY = DataKey.create("ShelveChangesManager.ShelvedChange");
public static final DataKey<List<ShelvedBinaryFile>> SHELVED_BINARY_FILE_KEY = DataKey.create("ShelveChangesManager.ShelvedBinaryFile");
private static final Object ROOT_NODE_VALUE = new Object();
@@ -372,18 +374,10 @@ public class ShelvedChangesViewManager implements Disposable {
@Override
public Object getData(@NotNull @NonNls String dataId) {
if (SHELVED_CHANGELIST_KEY.is(dataId)) {
final Set<ShelvedChangeList> changeLists = getSelectedLists(l -> !l.isRecycled());
if (changeLists.size() > 0) {
return changeLists.toArray(new ShelvedChangeList[0]);
}
return nullize(newArrayList(getSelectedLists(l -> !l.isRecycled())));
}
else if (SHELVED_RECYCLED_CHANGELIST_KEY.is(dataId)) {
final Set<ShelvedChangeList> changeLists = getSelectedLists(l -> l.isRecycled());
if (changeLists.size() > 0) {
return changeLists.toArray(new ShelvedChangeList[0]);
}
return nullize(newArrayList(getSelectedLists(l -> l.isRecycled())));
}
else if (SHELVED_CHANGE_KEY.is(dataId)) {
return TreeUtil.collectSelectedObjectsOfType(this, ShelvedChange.class);
@@ -465,16 +459,9 @@ public class ShelvedChangesViewManager implements Disposable {
@NotNull
public static List<ShelvedChangeList> getShelvedLists(@NotNull final DataContext dataContext) {
final ShelvedChangeList[] shelved = SHELVED_CHANGELIST_KEY.getData(dataContext);
final ShelvedChangeList[] recycled = SHELVED_RECYCLED_CHANGELIST_KEY.getData(dataContext);
if (shelved == null && recycled == null) return Collections.emptyList();
List<ShelvedChangeList> shelvedChangeLists = newArrayList();
if (shelved != null) {
addAll(shelvedChangeLists, shelved);
}
if (recycled != null) {
addAll(shelvedChangeLists, recycled);
}
addAll(shelvedChangeLists, notNullize(SHELVED_CHANGELIST_KEY.getData(dataContext)));
addAll(shelvedChangeLists, notNullize(SHELVED_RECYCLED_CHANGELIST_KEY.getData(dataContext)));
return shelvedChangeLists;
}