blob: 8312c330b987017c333a210ba452a5bd22e4054b [file] [log] [blame]
/*
* Copyright 2000-2012 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.usages;
import com.intellij.openapi.components.*;
import com.intellij.util.xmlb.XmlSerializerUtil;
import com.intellij.util.xmlb.annotations.Transient;
import org.jetbrains.annotations.NonNls;
import java.io.File;
@State(
name = "UsageViewSettings",
storages = {
@Storage(
file = StoragePathMacros.APP_CONFIG + "/other.xml"
)}
)
public class UsageViewSettings implements PersistentStateComponent<UsageViewSettings> {
@NonNls public String EXPORT_FILE_NAME = "report.txt";
public boolean IS_EXPANDED = false;
public boolean IS_SHOW_PACKAGES = true;
public boolean IS_SHOW_METHODS = false;
public boolean IS_AUTOSCROLL_TO_SOURCE = false;
public boolean IS_FILTER_DUPLICATED_LINE = false;
public boolean IS_SHOW_MODULES = false;
public boolean IS_PREVIEW_USAGES = false;
public boolean IS_SORT_MEMBERS_ALPHABETICALLY = true;
public float PREVIEW_USAGES_SPLITTER_PROPORTIONS = 0.5f;
public boolean GROUP_BY_USAGE_TYPE = true;
public boolean GROUP_BY_MODULE = true;
public boolean GROUP_BY_PACKAGE = true;
public boolean GROUP_BY_FILE_STRUCTURE = true;
public boolean GROUP_BY_SCOPE = false;
public static UsageViewSettings getInstance() {
return ServiceManager.getService(UsageViewSettings.class);
}
public boolean isExpanded() {
return IS_EXPANDED;
}
public void setExpanded(boolean val) {
IS_EXPANDED = val;
}
public boolean isShowPackages() {
return IS_SHOW_PACKAGES;
}
public void setShowPackages(boolean val) {
IS_SHOW_PACKAGES = val;
}
public boolean isShowMethods() {
return IS_SHOW_METHODS;
}
public boolean isShowModules() {
return IS_SHOW_MODULES;
}
public void setShowMethods(boolean val) {
IS_SHOW_METHODS = val;
}
public void setShowModules(boolean val) {
IS_SHOW_MODULES = val;
}
public boolean isFilterDuplicatedLine() {
return IS_FILTER_DUPLICATED_LINE;
}
public void setFilterDuplicatedLine(boolean val) {
IS_FILTER_DUPLICATED_LINE = val;
}
@Transient
public String getExportFileName() {
return EXPORT_FILE_NAME != null ? EXPORT_FILE_NAME.replace('/', File.separatorChar) : null;
}
public void setExportFileName(String s) {
if (s != null){
s = s.replace(File.separatorChar, '/');
}
EXPORT_FILE_NAME = s;
}
@Override
public UsageViewSettings getState() {
return this;
}
@Override
public void loadState(final UsageViewSettings object) {
XmlSerializerUtil.copyBean(object, this);
}
}