// This file is part of AceWiki.
// Copyright 2008-2013, AceWiki developers.
//
// AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
// Lesser General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
// not, see http://www.gnu.org/licenses/.
package ch.uzh.ifi.attempto.acewiki.gui;
import java.util.Map;
import nextapp.echo.app.Insets;
import ch.uzh.ifi.attempto.acewiki.Wiki;
import ch.uzh.ifi.attempto.acewiki.core.AceWikiConfig;
import ch.uzh.ifi.attempto.acewiki.core.AceWikiReasoner;
import ch.uzh.ifi.attempto.acewiki.core.Ontology;
import ch.uzh.ifi.attempto.echocomp.VSpace;
/**
* This class represents a page with information about the respective wiki.
*
* @author Tobias Kuhn
*/
public class AboutPage extends WikiPage {
private static final long serialVersionUID = -5184590884798735077L;
/**
* Creates a new about page.
*
* @param wiki The wiki instance.
*/
public AboutPage(Wiki wiki) {
super(wiki);
}
protected void doUpdate() {
Wiki w = getWiki();
AceWikiConfig c = w.getConfig();
Ontology o = w.getOntology();
removeAll();
setTabRow(TabRow.getMainTabRow(TabRow.TAB_ABOUT, getWiki()));
add(new Title(w.getGUIText("acewiki_page_about"), true));
addHorizontalLine();
add(new VSpace(10));
NameValueTable table = new NameValueTable();
addHeadline("acewiki_about_systemheading");
table = new NameValueTable();
table.setInsets(new Insets(10, 10, 10, 15));
table.addEntry(
w.getGUIText("acewiki_about_version"),
Wiki.getInfo("acewiki-version") + " (" + Wiki.getInfo("acewiki-release-stage") + ")"
);
table.addEntry(w.getGUIText("acewiki_about_builddate"), Wiki.getInfo("acewiki-build-date"));
add(table);
addHeadline("acewiki_about_ontologyheading");
table = new NameValueTable();
table.setInsets(new Insets(10, 10, 10, 15));
table.addEntry(w.getGUIText("acewiki_about_ontologyname"), o.getName());
table.addEntry(w.getGUIText("acewiki_about_ontologysize"), o.getOntologyElements().size() + "");
table.addEntry(w.getGUIText("acewiki_about_ontologyuri"), o.getURI());
add(table);
AceWikiReasoner r = getWiki().getEngine().getReasoner();
if (r != null) {
addHeadline("acewiki_about_reasonerheading");
table = new NameValueTable();
table.setInsets(new Insets(10, 10, 10, 15));
table.addEntry(w.getGUIText("acewiki_about_reasonertype"), r.getReasonerType());
table.addEntry(w.getGUIText("acewiki_about_reasonername"), r.getReasonerName());
table.addEntry(w.getGUIText("acewiki_about_reasonerversion"), r.getReasonerVersion());
Map<String, String> info = r.getInfo();
if (info != null) {
for (String s : info.keySet()) {
table.addEntry(s, info.get(s));
}
}
add(table);
}
addHeadline("acewiki_about_usersheading");
table = new NameValueTable();
table.setInsets(new Insets(10, 10, 10, 15));
String yes = w.getGUIText("acewiki_about_yes");
String no = w.getGUIText("acewiki_about_no");
table.addEntry(w.getGUIText("acewiki_about_usersnumber"), w.getUserBase().getUserCount() + "");
table.addEntry(w.getGUIText("acewiki_about_loginenabled"), (c.isLoginEnabled() ? yes : no));
table.addEntry(w.getGUIText("acewiki_about_loginforview"), (c.isLoginRequiredForViewing() ? yes : no));
table.addEntry(w.getGUIText("acewiki_about_loginforedit"), (c.isLoginRequiredForEditing() ? yes : no));
table.addEntry(w.getGUIText("acewiki_about_openregistr"), (c.isUserRegistrationOpen() ? yes : no));
add(table);
add(new VSpace(20));
}
public boolean equals(Object obj) {
return obj instanceof AboutPage;
}
public String toString() {
return "-ABOUT-";
}
}