mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
shelf: refactoring - change SHELVED_CHANGELIST data keys to list
This commit is contained in:
+10
-6
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-21
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user