package org.docear.plugin.bibtex.jabref; import java.io.File; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Set; import org.docear.plugin.bibtex.ReferencesController; import org.docear.plugin.core.workspace.model.DocearWorkspaceProject; import net.sf.jabref.BasePanel; import net.sf.jabref.imports.ParserResult; public class JabRefBaseHandle { private final ParserResult parserResult; private final BasePanel basePanel; private final Set<DocearWorkspaceProject> connectedProjects = new LinkedHashSet<DocearWorkspaceProject>(); public JabRefBaseHandle(BasePanel basePanel, ParserResult parserResult) { this.parserResult = parserResult; this.basePanel = basePanel; } public BasePanel getBasePanel() { return this.basePanel; } public ParserResult getParserResult() { return this.parserResult; } public HashMap<String, String> getMeta() { return this.getParserResult().getMetaData(); } public String getEncoding() { return this.getParserResult().getEncoding(); } public File getFile() { return this.getBasePanel().getFile(); } public void addProjectConnection(DocearWorkspaceProject project) { if(project == null) { return; } synchronized (connectedProjects) { connectedProjects.add(project); } } public void removeProjectConnection(DocearWorkspaceProject project) { if(project == null) { return; } synchronized (connectedProjects) { connectedProjects.remove(project); } } public boolean hasMoreConnections() { return connectedProjects.size() > 0; } public void showBasePanel() { ReferencesController.getController().getJabrefWrapper().getJabrefFrame().showBasePanel(getBasePanel()); } }