mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[vcs-log] create CommonUiProperties class for keeping shared properties between log and file history, move show details property there
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.vcs.log.impl;
|
||||
|
||||
import com.intellij.vcs.log.impl.VcsLogUiProperties.VcsLogUiProperty;
|
||||
|
||||
public class CommonUiProperties {
|
||||
public static final VcsLogUiProperty<Boolean> SHOW_DETAILS = new VcsLogUiProperty<>("Window.ShowDetails");
|
||||
}
|
||||
@@ -25,7 +25,6 @@ import java.util.Map;
|
||||
|
||||
public interface MainVcsLogUiProperties extends VcsLogUiProperties {
|
||||
|
||||
VcsLogUiProperty<Boolean> SHOW_DETAILS = new VcsLogUiProperty<>("Window.ShowDetails");
|
||||
VcsLogUiProperty<Boolean> SHOW_LONG_EDGES = new VcsLogUiProperty<>("Graph.ShowLongEdges");
|
||||
VcsLogUiProperty<PermanentGraph.SortType> BEK_SORT_TYPE = new VcsLogUiProperty<>("Graph.BekSortType");
|
||||
VcsLogUiProperty<Boolean> SHOW_ROOT_NAMES = new VcsLogUiProperty<>("Table.ShowRootNames");
|
||||
|
||||
@@ -29,7 +29,7 @@ import java.util.*;
|
||||
public abstract class VcsLogUiPropertiesImpl implements PersistentStateComponent<VcsLogUiPropertiesImpl.State>, MainVcsLogUiProperties {
|
||||
private static final int RECENTLY_FILTERED_VALUES_LIMIT = 10;
|
||||
private static final Set<VcsLogUiProperties.VcsLogUiProperty> SUPPORTED_PROPERTIES =
|
||||
ContainerUtil.newHashSet(MainVcsLogUiProperties.SHOW_DETAILS,
|
||||
ContainerUtil.newHashSet(CommonUiProperties.SHOW_DETAILS,
|
||||
MainVcsLogUiProperties.SHOW_LONG_EDGES,
|
||||
MainVcsLogUiProperties.BEK_SORT_TYPE,
|
||||
MainVcsLogUiProperties.SHOW_ROOT_NAMES,
|
||||
@@ -61,7 +61,7 @@ public abstract class VcsLogUiPropertiesImpl implements PersistentStateComponent
|
||||
@NotNull
|
||||
@Override
|
||||
public <T> T get(@NotNull VcsLogUiProperties.VcsLogUiProperty<T> property) {
|
||||
if (SHOW_DETAILS.equals(property)) {
|
||||
if (CommonUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
return (T)Boolean.valueOf(getState().SHOW_DETAILS_IN_CHANGES);
|
||||
}
|
||||
else if (SHOW_LONG_EDGES.equals(property)) {
|
||||
@@ -95,7 +95,7 @@ public abstract class VcsLogUiPropertiesImpl implements PersistentStateComponent
|
||||
|
||||
@Override
|
||||
public <T> void set(@NotNull VcsLogUiProperties.VcsLogUiProperty<T> property, @NotNull T value) {
|
||||
if (SHOW_DETAILS.equals(property)) {
|
||||
if (CommonUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
getState().SHOW_DETAILS_IN_CHANGES = (Boolean)value;
|
||||
}
|
||||
else if (SHOW_LONG_EDGES.equals(property)) {
|
||||
@@ -253,7 +253,7 @@ public abstract class VcsLogUiPropertiesImpl implements PersistentStateComponent
|
||||
|
||||
@Override
|
||||
public <T> void onPropertyChanged(@NotNull VcsLogUiProperties.VcsLogUiProperty<T> property) {
|
||||
if (SHOW_DETAILS.equals(property)) {
|
||||
if (CommonUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
onShowDetailsChanged();
|
||||
}
|
||||
else if (SHOW_LONG_EDGES.equals(property)) {
|
||||
|
||||
+2
-1
@@ -25,6 +25,7 @@ import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.vcs.log.graph.PermanentGraph;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.VcsProjectLog;
|
||||
import com.intellij.vcs.log.ui.VcsLogUiImpl;
|
||||
@@ -50,7 +51,7 @@ public class VcsLogFeaturesCollector extends AbstractApplicationUsagesCollector
|
||||
MainVcsLogUiProperties properties = ui.getProperties();
|
||||
|
||||
Set<UsageDescriptor> usages = ContainerUtil.newHashSet();
|
||||
usages.add(StatisticsUtilKt.getBooleanUsage("ui.details", properties.get(SHOW_DETAILS)));
|
||||
usages.add(StatisticsUtilKt.getBooleanUsage("ui.details", properties.get(CommonUiProperties.SHOW_DETAILS)));
|
||||
usages.add(StatisticsUtilKt.getBooleanUsage("ui.long.edges", properties.get(SHOW_LONG_EDGES)));
|
||||
|
||||
PermanentGraph.SortType sortType = properties.get(BEK_SORT_TYPE);
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.intellij.vcs.log.data.VcsLogData;
|
||||
import com.intellij.vcs.log.graph.PermanentGraph;
|
||||
import com.intellij.vcs.log.graph.actions.GraphAction;
|
||||
import com.intellij.vcs.log.graph.actions.GraphAnswer;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties.VcsLogHighlighterProperty;
|
||||
import com.intellij.vcs.log.impl.VcsLogUiPropertiesImpl;
|
||||
@@ -150,7 +151,7 @@ public class VcsLogUiImpl extends AbstractVcsLogUi {
|
||||
private class MyVcsLogUiPropertiesListener extends VcsLogUiPropertiesImpl.MainVcsLogUiPropertiesListener {
|
||||
@Override
|
||||
public void onShowDetailsChanged() {
|
||||
myMainFrame.showDetails(myUiProperties.get(MainVcsLogUiProperties.SHOW_DETAILS));
|
||||
myMainFrame.showDetails(myUiProperties.get(CommonUiProperties.SHOW_DETAILS));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package com.intellij.vcs.log.ui.actions;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.VcsLogUiProperties;
|
||||
|
||||
public class ShowDetailsAction extends BooleanPropertyToggleAction {
|
||||
@@ -27,6 +27,6 @@ public class ShowDetailsAction extends BooleanPropertyToggleAction {
|
||||
|
||||
@Override
|
||||
protected VcsLogUiProperties.VcsLogUiProperty<Boolean> getProperty() {
|
||||
return MainVcsLogUiProperties.SHOW_DETAILS;
|
||||
return CommonUiProperties.SHOW_DETAILS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.intellij.vcs.log.VcsLog;
|
||||
import com.intellij.vcs.log.VcsLogDataKeys;
|
||||
import com.intellij.vcs.log.VcsLogFilterUi;
|
||||
import com.intellij.vcs.log.data.VcsLogData;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.VcsLogUtil;
|
||||
import com.intellij.vcs.log.ui.VcsLogActionPlaces;
|
||||
@@ -103,7 +104,7 @@ public class MainFrame extends JPanel implements DataProvider, Disposable {
|
||||
|
||||
myDetailsSplitter = new OnePixelSplitter(true, "vcs.log.details.splitter.proportion", 0.7f);
|
||||
myDetailsSplitter.setFirstComponent(myChangesLoadingPane);
|
||||
setupDetailsSplitter(myUiProperties.get(MainVcsLogUiProperties.SHOW_DETAILS));
|
||||
setupDetailsSplitter(myUiProperties.get(CommonUiProperties.SHOW_DETAILS));
|
||||
|
||||
myGraphTable.getSelectionModel().addListSelectionListener(new MyCommitSelectionListenerForDiff());
|
||||
myDetailsPanel.installCommitSelectionListener(myGraphTable);
|
||||
|
||||
@@ -27,7 +27,7 @@ import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.vcs.log.VcsFullCommitDetails;
|
||||
import com.intellij.vcs.log.data.VcsLogData;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.VcsLogUtil;
|
||||
import com.intellij.vcs.log.ui.VcsLogActionPlaces;
|
||||
import com.intellij.vcs.log.ui.VcsLogInternalDataKeys;
|
||||
@@ -73,7 +73,7 @@ public class FileHistoryPanel extends JPanel implements DataProvider, Disposable
|
||||
myDetailsSplitter = new OnePixelSplitter(true, "vcs.log.history.details.splitter.proportion", 0.7f);
|
||||
myDetailsSplitter.setFirstComponent(VcsLogUiUtil.installProgress(VcsLogUiUtil.setupScrolledGraph(myGraphTable, SideBorder.LEFT),
|
||||
logData, this));
|
||||
myDetailsSplitter.setSecondComponent(myUi.getProperties().get(MainVcsLogUiProperties.SHOW_DETAILS) ? myDetailsPanel : null);
|
||||
myDetailsSplitter.setSecondComponent(myUi.getProperties().get(CommonUiProperties.SHOW_DETAILS) ? myDetailsPanel : null);
|
||||
|
||||
myDetailsPanel.installCommitSelectionListener(myGraphTable);
|
||||
VcsLogUiUtil.installDetailsListeners(myGraphTable, myDetailsPanel, logData, this);
|
||||
|
||||
@@ -37,6 +37,7 @@ import com.intellij.vcs.log.VcsLogFilterUi;
|
||||
import com.intellij.vcs.log.data.LoadingDetails;
|
||||
import com.intellij.vcs.log.data.VcsLogData;
|
||||
import com.intellij.vcs.log.data.index.IndexDataGetter;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.VcsLogUiProperties;
|
||||
import com.intellij.vcs.log.ui.AbstractVcsLogUi;
|
||||
@@ -248,8 +249,8 @@ public class FileHistoryUi extends AbstractVcsLogUi {
|
||||
private class MyPropertiesChangeListener implements VcsLogUiProperties.PropertiesChangeListener {
|
||||
@Override
|
||||
public <T> void onPropertyChanged(@NotNull VcsLogUiProperties.VcsLogUiProperty<T> property) {
|
||||
if (property == MainVcsLogUiProperties.SHOW_DETAILS) {
|
||||
myFileHistoryPanel.showDetails(myUiProperties.get(MainVcsLogUiProperties.SHOW_DETAILS));
|
||||
if (property == CommonUiProperties.SHOW_DETAILS) {
|
||||
myFileHistoryPanel.showDetails(myUiProperties.get(CommonUiProperties.SHOW_DETAILS));
|
||||
}
|
||||
else if (property == FileHistoryUiProperties.SHOW_ALL_BRANCHES) {
|
||||
updateFilter();
|
||||
|
||||
+4
-3
@@ -21,6 +21,7 @@ import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.openapi.components.StoragePathMacros;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.vcs.log.impl.CommonUiProperties;
|
||||
import com.intellij.vcs.log.impl.MainVcsLogUiProperties;
|
||||
import com.intellij.vcs.log.impl.VcsLogUiProperties;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -43,7 +44,7 @@ public class FileHistoryUiProperties implements VcsLogUiProperties, PersistentSt
|
||||
@NotNull
|
||||
@Override
|
||||
public <T> T get(@NotNull VcsLogUiProperty<T> property) {
|
||||
if (MainVcsLogUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
if (CommonUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
return (T)Boolean.valueOf(myState.SHOW_DETAILS);
|
||||
}
|
||||
else if (SHOW_ALL_BRANCHES.equals(property)) {
|
||||
@@ -54,7 +55,7 @@ public class FileHistoryUiProperties implements VcsLogUiProperties, PersistentSt
|
||||
|
||||
@Override
|
||||
public <T> void set(@NotNull VcsLogUiProperty<T> property, @NotNull T value) {
|
||||
if (MainVcsLogUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
if (CommonUiProperties.SHOW_DETAILS.equals(property)) {
|
||||
myState.SHOW_DETAILS = (Boolean)value;
|
||||
}
|
||||
else if (SHOW_ALL_BRANCHES.equals(property)) {
|
||||
@@ -68,7 +69,7 @@ public class FileHistoryUiProperties implements VcsLogUiProperties, PersistentSt
|
||||
|
||||
@Override
|
||||
public <T> boolean exists(@NotNull VcsLogUiProperty<T> property) {
|
||||
return MainVcsLogUiProperties.SHOW_DETAILS.equals(property) || SHOW_ALL_BRANCHES.equals(property);
|
||||
return CommonUiProperties.SHOW_DETAILS.equals(property) || SHOW_ALL_BRANCHES.equals(property);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user