001 // This file is part of AceWiki.
002 // Copyright 2008-2012, AceWiki developers.
003 //
004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of
006 // the License, or (at your option) any later version.
007 //
008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
010 // Lesser General Public License for more details.
011 //
012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
013 // not, see http://www.gnu.org/licenses/.
014
015 package ch.uzh.ifi.attempto.acewiki.gui;
016
017 import java.util.Map;
018
019 import nextapp.echo.app.Insets;
020 import nextapp.echo.app.event.ActionEvent;
021 import nextapp.echo.app.event.ActionListener;
022 import ch.uzh.ifi.attempto.acewiki.Wiki;
023 import ch.uzh.ifi.attempto.acewiki.core.AceWikiReasoner;
024 import ch.uzh.ifi.attempto.acewiki.core.Ontology;
025 import ch.uzh.ifi.attempto.echocomp.VSpace;
026
027 /**
028 * This class represents a page with information about the respective wiki.
029 *
030 * @author Tobias Kuhn
031 */
032 public class AboutPage extends WikiPage implements ActionListener {
033
034 private static final long serialVersionUID = -5184590884798735077L;
035
036 private NameValueTable table1, table2, table3, table4;
037
038 /**
039 * Creates a new about page.
040 *
041 * @param wiki The wiki instance.
042 */
043 public AboutPage(Wiki wiki) {
044 super(wiki);
045
046 addTab("Main Page", this);
047 addTab("Index", this);
048 addTab("Search", this);
049 addSelectedTab("About");
050
051 add(new Title("About", true));
052 addHorizontalLine();
053 add(new VSpace(10));
054
055 addHeadline("System");
056 table1 = new NameValueTable();
057 table1.setInsets(new Insets(10, 10, 10, 15));
058 add(table1);
059
060 addHeadline("Ontology");
061 table2 = new NameValueTable();
062 table2.setInsets(new Insets(10, 10, 10, 15));
063 add(table2);
064
065 addHeadline("Reasoner");
066 table3 = new NameValueTable();
067 table3.setInsets(new Insets(10, 10, 10, 15));
068 add(table3);
069
070 addHeadline("Users");
071 table4 = new NameValueTable();
072 table4.setInsets(new Insets(10, 10, 10, 15));
073 add(table4);
074
075 add(new VSpace(20));
076 }
077
078 protected void doUpdate() {
079 table1.clear();
080 table2.clear();
081 table3.clear();
082 table4.clear();
083
084 Wiki w = getWiki();
085 Ontology o = w.getOntology();
086
087 table1.addEntry("AceWiki version", Wiki.getInfo("acewiki-version"));
088 table1.addEntry("AceWiki release stage", Wiki.getInfo("acewiki-release-stage"));
089 table1.addEntry("AceWiki build date", Wiki.getInfo("acewiki-build-date"));
090
091 table2.addEntry("ontology name", o.getName());
092 table2.addEntry("number of ontology elements", o.getOntologyElements().size() + "");
093 table2.addEntry("ontology URI", o.getURI());
094
095 AceWikiReasoner r = o.getReasoner();
096 table3.addEntry("reasoner type", r.getReasonerType());
097 table3.addEntry("reasoner name", r.getReasonerName());
098 table3.addEntry("reasoner version", r.getReasonerVersion());
099 Map<String, String> info = r.getInfo();
100 if (info != null) {
101 for (String s : info.keySet()) {
102 table3.addEntry(s, info.get(s));
103 }
104 }
105
106 table4.addEntry("number of registered users", w.getUserBase().getUserCount() + "");
107 table4.addEntry("login enabled", (w.isLoginEnabled() ? "yes" : "no"));
108 table4.addEntry("login required for viewing", (w.isLoginRequiredForViewing() ? "yes" : "no"));
109 table4.addEntry("login required for editing", (w.isLoginRequiredForEditing() ? "yes" : "no"));
110 table4.addEntry("open user registration", (w.isUserRegistrationOpen() ? "yes" : "no"));
111 }
112
113 public void actionPerformed(ActionEvent e) {
114 if ("Main Page".equals(e.getActionCommand())) {
115 getWiki().showStartPage();
116 } else if ("Index".equals(e.getActionCommand())) {
117 getWiki().showIndexPage();
118 } else if ("Search".equals(e.getActionCommand())) {
119 getWiki().showSearchPage();
120 }
121 }
122
123 public boolean equals(Object obj) {
124 return obj instanceof AboutPage;
125 }
126
127 public String toString() {
128 return "-ABOUT-";
129 }
130
131 }