Show WikiEditorController.java syntax highlighted
package ca.ucalgary.cpsc.ebe.fitClipse.ui.editor;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import ca.ucalgary.cpsc.ebe.fitClipse.connector.IServerConnector;
import ca.ucalgary.cpsc.ebe.fitClipse.connector.ServerConnectorFactory;
import ca.ucalgary.cpsc.ebe.fitClipse.ui.testHierarchy.model.WikiPageModel;
public class WikiEditorController {
private boolean pageModified = false;
private WikiPageModel parent = null;
private String pageQName;
private boolean fitTest = false;
public void setParent(WikiPageModel parent) {
this.parent = parent;
}
public String getPageQName() {
return pageQName;
}
public String loadWikiPage(String qName, WikiPageModel parent)
throws Exception {
this.pageQName = qName.replace(".root", "");
this.parent = parent;
if (qName != "") {
IServerConnector connector = ServerConnectorFactory
.getServerInstance(null);
if (connector == null) {
return null;
}
System.out.println("qName is: " + qName);
String wikipageContent = connector.getFitPageText(qName);
if (wikipageContent != null) {
return wikipageContent;
} else {
return null;
}
}
return null;
}
public void saveWikiContent(String content) throws Exception {
if (pageQName != "") {
IServerConnector connector = ServerConnectorFactory
.getServerInstance(null);
if (connector == null) {
return;
}
if (content != null) {
Pattern p = Pattern.compile("(.*)\\.(.*)");
Matcher m = p.matcher(pageQName);
String name = null;
String nameSpace = null;
if (m.matches()) {
nameSpace = m.group(1);
name = m.group(2);
}
boolean saveSuccess = false;
WikiPageModel model = new WikiPageModel(this.parent);
model.setName(name);
model.setNameSpace(nameSpace);
model.setFitTest(fitTest);
saveSuccess = connector.saveGenericWikiPage(model, content);
if (!saveSuccess) {
MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Error", "Error saving page content");
}
}
}
}
public boolean isPageModified() {
return pageModified;
}
public void setPageModified(boolean pageModified) {
this.pageModified = pageModified;
}
public static WikiEditor newWikiEditor(String name, String qName,
WikiPageModel parent) {
boolean exist = false;
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IEditorReference [] editorReference = page.getEditorReferences();
for(IEditorReference er: editorReference){
// System.out.println("inside wikiEditor: name is:"+er.getName());
if(er.getName().equals(qName)){
exist = true;
}
}
String wikiEditorName = "[Wiki Editor]"+qName;
WikiEditorInput input = new WikiEditorInput(wikiEditorName);
WikiEditor editor = null;
try {
editor = (WikiEditor) page.openEditor(input, WikiEditor.ID);
if (editor == null) {
throw new Exception("Error opening new Eclipse editor.");
}
if(!exist){
editor.loadWikiPage(name, qName, false, parent);
}
} catch (Exception e) {
}
return editor;
}
public static WikiEditor newFitEditor(String name, String qName,
WikiPageModel parent) {
boolean exist = false;
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IEditorReference [] editorReference = page.getEditorReferences();
for(IEditorReference er: editorReference){
// System.out.println("inside wikiEditor: name is:"+er.getName());
if(er.getName().equals(qName)){
exist = true;
}
}
WikiEditorInput input = new WikiEditorInput(qName);
WikiEditor editor = null;
try {
editor = (WikiEditor) page.openEditor(input, WikiEditor.ID);
if (editor == null) {
throw new Exception("Error opening new Eclipse editor.");
}
if(!exist){
editor.loadWikiPage(name, qName, false, parent);
}
} catch (Exception e) {
}
return editor;
}
public String getURL(String qName) throws Exception {
IServerConnector connector = ServerConnectorFactory
.getServerInstance(null);
String url = connector.getWikiEditorUrl(qName);
return url;
}
public void setFitTest(boolean fitTest) {
this.fitTest = fitTest;
}
public boolean isFitTest() {
return fitTest;
}
}
See more files for this project here