import com.intellij.openapi.components.PersistentStateComponent;import com.intellij.util.xmlb.XmlSerializerUtil;import org.jetbrains.annotations.NotNull;import org.jetbrains.annotations.Nullable;import java.util.List;public abstract class ProjectConfiguration implements PersistentStateComponent { /** * 存储的对象必须有GET\SET方法 * 不能直接对该泛型GET或SET无法正常保存 * @return */ public abstract List getEntrances(); /** * 获取配置对象 * @return */ @Override public @Nullable T getState() { return (T) this; } /** * 加载配置对象 * @param t */ @Override public void loadState(@NotNull T t) { XmlSerializerUtil.copyBean(t, this); }}
import com.intellij.openapi.components.ServiceManager;import com.intellij.openapi.components.State;import com.intellij.openapi.components.Storage;import com.intellij.openapi.project.Project;import com.muy.common.configuration.ProjectConfiguration;import com.muy.view.window.sequence.bean.TreeNodeModelSequence;import lombok.Getter;import lombok.Setter;import java.util.LinkedList;import java.util.List;@State( name = "SequenceConfiguration", storages = { @Storage(file = "$PROJECT_CONFIG_DIR$/sequenceSettings.xml") })public class SequenceConfiguration extends ProjectConfiguration { @Getter @Setter private List entrances = new LinkedList<>(); public static SequenceConfiguration getInstance(Project project) { return ServiceManager.getService(project, SequenceConfiguration.class); }}
关键属性对应关系
留言与评论(共有 0 条评论) “” |