[vcs-log] create CommonUiProperties class for keeping shared properties between log and file history, move show details property there

This commit is contained in:
Julia Beliaeva
2017-03-03 23:58:00 +03:00
parent 5f0e59fce1
commit e4b6f71e8e
10 changed files with 43 additions and 17 deletions
@@ -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)) {
@@ -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();
@@ -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