blob: 95e78f136fdb910dd3624d251a8d00fe25200db7 [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.cvsSupport2.config;
import com.intellij.cvsSupport2.CvsUtil;
import com.intellij.cvsSupport2.keywordSubstitution.KeywordSubstitutionWrapper;
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.components.StoragePathMacros;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.VcsShowConfirmationOption;
import com.intellij.util.Options;
import com.intellij.util.xmlb.XmlSerializerUtil;
import org.netbeans.lib.cvsclient.command.Watch;
import java.util.Arrays;
import java.util.List;
/**
* author: lesya
*/
@State(
name="Cvs2Configuration",
storages= {
@Storage(
file = StoragePathMacros.WORKSPACE_FILE
)}
)
public class CvsConfiguration implements PersistentStateComponent<CvsConfiguration> {
public static final int DO_NOT_MERGE = 0;
public static final int MERGE_WITH_BRANCH = 1;
public static final int MERGE_TWO_BRANCHES = 2;
public boolean PRUNE_EMPTY_DIRECTORIES = true;
public int MERGING_MODE = DO_NOT_MERGE;
public String MERGE_WITH_BRANCH1_NAME = CvsUtil.HEAD;
public String MERGE_WITH_BRANCH2_NAME = CvsUtil.HEAD;
public boolean RESET_STICKY = false;
public boolean CREATE_NEW_DIRECTORIES = true;
public String DEFAULT_TEXT_FILE_SUBSTITUTION = KeywordSubstitutionWrapper.KEYWORD_EXPANSION.getSubstitution().toString();
public boolean PROCESS_UNKNOWN_FILES;
public boolean PROCESS_DELETED_FILES;
public boolean PROCESS_IGNORED_FILES;
public boolean RESERVED_EDIT;
public DateOrRevisionSettings CHECKOUT_DATE_OR_REVISION_SETTINGS = new DateOrRevisionSettings();
public DateOrRevisionSettings UPDATE_DATE_OR_REVISION_SETTINGS = new DateOrRevisionSettings();
public DateOrRevisionSettings SHOW_CHANGES_REVISION_SETTINGS = new DateOrRevisionSettings();
public boolean SHOW_OUTPUT = false;
public int ADD_WATCH_INDEX = 0;
public List<Watch> WATCHERS = Arrays.asList(Watch.ALL, Watch.EDIT, Watch.UNEDIT, Watch.COMMIT);
public int REMOVE_WATCH_INDEX = 0;
public String UPDATE_KEYWORD_SUBSTITUTION = null;
public boolean MAKE_NEW_FILES_READONLY = false;
public int SHOW_CORRUPTED_PROJECT_FILES = Options.SHOW_DIALOG;
public boolean TAG_AFTER_PROJECT_COMMIT = false;
public boolean OVERRIDE_EXISTING_TAG_FOR_PROJECT = true;
public String TAG_AFTER_PROJECT_COMMIT_NAME = "";
public boolean CLEAN_COPY = false;
public static CvsConfiguration getInstance(Project project) {
return PeriodicalTasksCloser.getInstance().safeGetService(project, CvsConfiguration.class);
}
public static VcsShowConfirmationOption.Value convertToEnumValue(boolean value, boolean onOk) {
if (value) {
return VcsShowConfirmationOption.Value.SHOW_CONFIRMATION;
}
else if (onOk) {
return VcsShowConfirmationOption.Value.DO_ACTION_SILENTLY;
}
else {
return VcsShowConfirmationOption.Value.DO_NOTHING_SILENTLY;
}
}
public CvsConfiguration getState() {
return this;
}
public void loadState(CvsConfiguration object) {
XmlSerializerUtil.copyBean(object, this);
// safeguard (IDEADEV-15053)
if (CHECKOUT_DATE_OR_REVISION_SETTINGS == null) {
CHECKOUT_DATE_OR_REVISION_SETTINGS = new DateOrRevisionSettings();
}
if (UPDATE_DATE_OR_REVISION_SETTINGS == null) {
UPDATE_DATE_OR_REVISION_SETTINGS = new DateOrRevisionSettings();
}
if (SHOW_CHANGES_REVISION_SETTINGS == null) {
SHOW_CHANGES_REVISION_SETTINGS = new DateOrRevisionSettings();
}
}
}