Changeset 394
- Timestamp:
- 08/14/09 10:38:59 (3 years ago)
- Files:
-
- lex/trunk/.classpath (modified) (1 diff)
- lex/trunk/.settings/org.eclipse.core.resources.prefs (modified) (1 diff)
- lex/trunk/jsp/clause.jsp (modified) (6 diffs)
- lex/trunk/jsp/css (added)
- lex/trunk/jsp/css/style.css (moved) (moved from lex/trunk/jsp/style.css)
- lex/trunk/jsp/dump.jsp (modified) (3 diffs)
- lex/trunk/jsp/error.jsp (modified) (1 diff)
- lex/trunk/jsp/header2.jsp (deleted)
- lex/trunk/jsp/include (added)
- lex/trunk/jsp/include/auth.jsp (moved) (moved from lex/trunk/jsp/auth.jsp)
- lex/trunk/jsp/include/cleanup.jsp (moved) (moved from lex/trunk/jsp/cleanup.jsp)
- lex/trunk/jsp/include/footer.jsp (moved) (moved from lex/trunk/jsp/footer.jsp)
- lex/trunk/jsp/include/header.jsp (added)
- lex/trunk/jsp/include/hilite.inc (moved) (moved from lex/trunk/jsp/hilite.inc)
- lex/trunk/jsp/include/navclause_body.jsp (added)
- lex/trunk/jsp/include/navclause_head.jsp (added)
- lex/trunk/jsp/include/setup.jsp (added)
- lex/trunk/jsp/index.jsp (modified) (2 diffs)
- lex/trunk/jsp/js/clause.js (added)
- lex/trunk/jsp/js/lsedit.js (moved) (moved from lex/trunk/jsp/lsedit.js) (1 diff)
- lex/trunk/jsp/lexicon.jsp (moved) (moved from lex/trunk/jsp/lsedit.jsp) (21 diffs)
- lex/trunk/jsp/navclause.jsp (deleted)
- lex/trunk/jsp/parse.jsp (modified) (3 diffs)
- lex/trunk/jsp/published.jsp (modified) (4 diffs)
- lex/trunk/jsp/rules.jsp (modified) (3 diffs)
- lex/trunk/jsp/search.jsp (modified) (2 diffs)
- lex/trunk/jsp/WEB-INF/lib/org.aptivate.webutils.jar (modified) (previous)
- lex/trunk/jsp/wordnet.jsp (modified) (3 diffs)
- lex/trunk/src/com/qwirx/lex/controller/ClauseController.java (modified) (14 diffs)
- lex/trunk/src/com/qwirx/lex/controller/ControllerBase.java (modified) (4 diffs)
- lex/trunk/src/com/qwirx/lex/controller/LexiconController.java (added)
- lex/trunk/src/com/qwirx/lex/controller/Navigator.java (modified) (16 diffs)
- lex/trunk/src/com/qwirx/lex/emdros/EmdrosDatabase.java (modified) (3 diffs)
- lex/trunk/src/com/qwirx/lex/Lex.java (modified) (1 diff)
- lex/trunk/src/com/qwirx/lex/lexicon/Lexeme.java (modified) (20 diffs)
- lex/trunk/src/com/qwirx/lex/morph/HebrewMorphemeGenerator.java (modified) (4 diffs)
- lex/trunk/src/com/qwirx/lex/Search.java (modified) (4 diffs)
- lex/trunk/src/com/qwirx/lex/translit/DatabaseTransliterator.java (modified) (3 diffs)
- lex/trunk/test/com/qwirx/lex/LexTest.java (deleted)
- lex/trunk/test/com/qwirx/lex/LexTestBase.java (deleted)
- lex/trunk/test/com/qwirx/lex/test (added)
- lex/trunk/test/com/qwirx/lex/test/active (added)
- lex/trunk/test/com/qwirx/lex/test/active/Clause.java (moved) (moved from lex/trunk/test/com/qwirx/lex/Clause.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/ClauseControllerTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/ClauseControllerTest.java) (10 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/CommaSeparatedValueParserTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/CommaSeparatedValueParserTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/EmdrosDatabaseTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/EmdrosDatabaseTest.java) (2 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/GenExporterTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/GenExporterTest.java) (2 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/HebrewEnglishDatabaseTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/HebrewEnglishDatabaseTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/JswordExamples.java (moved) (moved from lex/trunk/test/com/qwirx/lex/JswordExamples.java) (2 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/LexemeTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/LexemeTest.java) (9 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/NavigatorTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/NavigatorTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/ParserTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/ParserTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/SearchTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/SearchTest.java) (6 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/ThematicRelationTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/ThematicRelationTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/TransliteratorTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/TransliteratorTest.java) (5 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/TreeDrawingTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/TreeDrawingTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/TreeNodeTests.java (moved) (moved from lex/trunk/test/com/qwirx/lex/TreeNodeTests.java) (2 diffs)
- lex/trunk/test/com/qwirx/lex/test/active/WivuLexiconTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/WivuLexiconTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/active/WordnetTest.java (moved) (moved from lex/trunk/test/com/qwirx/lex/WordnetTest.java) (1 diff)
- lex/trunk/test/com/qwirx/lex/test/unfinished (added)
- lex/trunk/test/com/qwirx/lex/test/unfinished/HebrewMorphTest.java (added)
- lex/trunk/test/com/qwirx/lex/test/unfinished/LexTest.java (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lex/trunk/.classpath
r393 r394 18 18 <classpathentry path="/httpunit-svn" combineaccessrules="false" kind="src"/> 19 19 <classpathentry path="jsp/WEB-INF/lib/org.aptivate.database.jar" kind="lib"/> 20 <classpathentry path="jsp/WEB-INF/lib/org.aptivate.webutils.jar" kind="lib"/>20 <classpathentry sourcepath="/aptivate-webutils" path="jsp/WEB-INF/lib/org.aptivate.webutils.jar" kind="lib"/> 21 21 <classpathentry path="jsp/WEB-INF/classes" kind="output"/> 22 22 </classpath> lex/trunk/.settings/org.eclipse.core.resources.prefs
r365 r394 1 # Sat Jan 05 16:55:05 CET 20081 #Thu Aug 13 12:15:54 BST 2009 2 2 eclipse.preferences.version=1 3 3 encoding//jsp/attributes.jsp=UTF-8 4 encoding//jsp/auth.jsp=UTF-85 4 encoding//jsp/clause.jsp=UTF-8 6 encoding//jsp/cleanup.jsp=UTF-87 5 encoding//jsp/dump.jsp=UTF-8 8 6 encoding//jsp/error.jsp=UTF-8 9 7 encoding//jsp/export.jsp=UTF-8 10 encoding//jsp/footer.jsp=UTF-811 8 encoding//jsp/gen-export.jsp=UTF-8 12 encoding//jsp/header2.jsp=UTF-8 9 encoding//jsp/include/auth.jsp=UTF-8 10 encoding//jsp/include/cleanup.jsp=UTF-8 11 encoding//jsp/include/footer.jsp=UTF-8 12 encoding//jsp/include/header.jsp=UTF-8 13 encoding//jsp/include/navclause_body.jsp=UTF-8 14 encoding//jsp/include/navclause_head.jsp=UTF-8 15 encoding//jsp/include/setup.jsp=UTF-8 13 16 encoding//jsp/index.jsp=UTF-8 17 encoding//jsp/lexicon.jsp=UTF-8 14 18 encoding//jsp/login.jsp=UTF-8 15 encoding//jsp/lsedit.jsp=UTF-816 encoding//jsp/navclause.jsp=UTF-817 19 encoding//jsp/parse.jsp=UTF-8 18 20 encoding//jsp/published.jsp=UTF-8 lex/trunk/jsp/clause.jsp
r374 r394 1 1 <% String pageTitle = "Text Browser"; %> 2 <%@ include file="header2.jsp" %> 2 3 3 <%@ page import="java.util.*" %> 4 4 <%@ page import="java.util.regex.*" %> … … 17 17 <%@ page import="net.didion.jwnl.data.Synset" %> 18 18 19 <script type="text/javascript"><!-- 20 21 function enableEditButton() 19 <%@ include file="include/setup.jsp" %> 20 <%@ include file="include/auth.jsp" %> 21 <%@ include file="include/navclause_head.jsp" %> 22 23 <% 24 ClauseController controller = new ClauseController(request, emdros, sql, 25 navigator); 26 if (controller.processRedirects(response)) 22 27 { 23 if (document.forms.changels == null) 24 { 25 return; 26 } 27 28 var lsselect = document.forms.changels.lsid; 29 var editform = document.forms.editls; 30 if (editform == null || editform.submit == null) 31 { 32 return; 33 } 34 35 var sellsid = -1; 36 if (lsselect.selectedIndex > 0) 37 { 38 sellsid = lsselect.options[lsselect.selectedIndex].value; 39 } 40 41 editform.submit.disabled = (sellsid != editform.lsid.value); 42 return true; 28 return; 43 29 } 44 45 function enableChangeButton(button, oldValue, selectBox) 46 { 47 if (button == null) return; 48 var newValue = selectBox.options[selectBox.selectedIndex].value; 49 button.disabled = (newValue == oldValue); 50 return true; 51 } 52 53 //--></script> 30 %> 31 <%@ include file="include/header.jsp" %> 32 33 <script type="text/javascript" src="js/clause.js"></script> 54 34 55 35 <style type="text/css"> … … 60 40 </style> 61 41 62 <%@ include file="auth.jsp" %> 63 64 <%@ include file="navclause.jsp" %> 42 <%@ include file="include/navclause_body.jsp" %> 65 43 66 44 <% 67 ClauseController controller = new ClauseController(request, emdros, sql,68 navigator);45 controller.processBody(); 46 69 47 MatchedObject clause = controller.getClause(); 70 48 … … 179 157 <form name="changels" method="POST"> 180 158 Choose logical structure: 181 <select name="lsid" onChange="enableEditButton(); 182 return enableChangeButton(lssave,<%= 183 controller.getSelectedLogicalStructureId() 184 %>,lsid)"> 185 <option value="0" <%= 186 (controller.getSelectedLogicalStructureId() == 0) 187 ? " SELECTED" : "" %>> 188 Not specified 189 </option> 190 <% 191 192 try 193 { 194 PreparedStatement stmt = sql.prepareSelect 195 ("SELECT ID,Structure,Syntactic_Args " + 196 "FROM lexicon_entries WHERE Lexeme = ?"); 197 stmt.setString(1, controller.getPredicateText()); 198 199 ResultSet rs = sql.select(); 200 while (rs.next()) 201 { 202 int thisLsId = rs.getInt("ID"); 203 String thisStructure = rs.getString("Structure"); 204 int thisNumSMRs = rs.getInt("Syntactic_Args"); 205 206 %> 207 <option value="<%= 208 thisLsId 209 %>"<%= 210 thisLsId == controller.getSelectedLogicalStructureId() 211 ? " SELECTED" : "" 212 %>><%= 213 thisStructure == null 214 ? "(undefined structure "+thisLsId+")" 215 : (thisStructure 216 .replaceAll("<", "<") 217 .replaceAll(">", ">")) 218 %> 219 <% 220 } 221 } 222 catch (DatabaseException ex) 223 { 224 %><%= ex %><% 225 } 226 finally 227 { 228 sql.finish(); 229 } 230 231 %> 232 <option value="add" <%= 233 selLsIdString != null && selLsIdString.equals("add") 234 ? " SELECTED" : "" 235 %>>Add new... 236 </select> 159 <%= controller.getLogicalStructureSelector().toString() %> 237 160 <input type="submit" name="lssave" value="Change"> 238 161 </form> … … 249 172 %> 250 173 <td> 251 <form name="editls" method="get" action="l sedit.jsp">174 <form name="editls" method="get" action="lexicon.jsp"> 252 175 <input type="hidden" name="lsid" value="<%= 253 176 controller.getSelectedLogicalStructureId() … … 401 324 </form> 402 325 403 <%@ include file=" footer.jsp" %>326 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/dump.jsp
r325 r394 1 <%@ include file="include/setup.jsp" %> 2 <%@ include file="include/auth.jsp" %> 3 1 4 <% String pageTitle = "Emdros Database Dump"; %> 2 <%@ include file=" header2.jsp" %>5 <%@ include file="include/header.jsp" %> 3 6 4 7 <%@ page import="java.util.Enumeration" %> … … 13 16 <%@ page import="com.qwirx.lex.emdros.*" %> 14 17 15 <%@ include file="auth.jsp" %> 16 17 <%@ include file="navclause.jsp" %> 18 <%@ include file="include/navclause_head.jsp" %> 19 <%@ include file="include/navclause_body.jsp" %> 18 20 19 21 <% … … 320 322 } 321 323 %> 322 </body></html> 323 <%@ include file="cleanup.jsp" %> 324 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/error.jsp
r239 r394 29 29 </pre> 30 30 31 <%@ include file=" footer.jsp" %>31 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/index.jsp
r345 r394 1 <%@ include file="include/setup.jsp" %> 2 1 3 <% String pageTitle = "Home Page"; %> 2 <%@ include file=" header2.jsp" %>4 <%@ include file="include/header.jsp" %> 3 5 4 6 <p>You should really start at the <a href="clause.jsp">text browser</a>.</p> … … 12 14 </ul> 13 15 14 <%@ include file=" footer.jsp" %>16 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/js/lsedit.js
r304 r394 1 function doFilter(inputbox, list, source )1 function doFilter(inputbox, list, source, originalValue) 2 2 { 3 3 if (source == null) return; 4 4 5 5 var query = inputbox.value; 6 var oldid = -1; 7 8 if (list.selectedIndex >= 0) 9 { 10 oldid = list.options[list.selectedIndex].value; 11 } 6 var oldid = originalValue; 12 7 13 8 list.options.length = 0; lex/trunk/jsp/lexicon.jsp
r312 r394 1 <%@ include file="include/setup.jsp" %> 2 <%@ include file="include/auth.jsp" %> 3 1 4 <% String pageTitle = "Edit Logical Structure"; %> 2 <%@ include file="header2.jsp" %> 3 5 <%@ include file="include/header.jsp" %> 6 7 <%@ page import="java.util.Arrays" %> 4 8 <%@ page import="java.util.Collections" %> 5 9 <%@ page import="java.util.Map" %> … … 13 17 <%@ page import="java.sql.*" %> 14 18 <%@ page import="jemdros.*" %> 19 <%@ page import="org.aptivate.web.controls.*" %> 15 20 <%@ page import="com.qwirx.lex.*" %> 16 21 <%@ page import="com.qwirx.db.sql.*" %> 22 <%@ page import="com.qwirx.lex.controller.LexiconController" %> 17 23 <%@ page import="com.qwirx.lex.emdros.*" %> 18 24 <%@ page import="com.qwirx.lex.lexicon.*" %> … … 24 30 </style> 25 31 26 <%@ include file="auth.jsp" %>27 28 32 <% 29 class LogicalStructureList extends Lexeme.Visitor 33 LexiconController controller = new LexiconController(request, emdros, sql); 34 35 List<String> errors = controller.getErrorMessages(); 36 if (errors.size() > 0) 30 37 { 31 private JspWriter out; 32 private int selected_id, exclude_domain_id; 33 34 LogicalStructureList(JspWriter out, 35 int selected_id, int exclude_domain_id, 36 Lexeme root) 37 { 38 super(root); 39 this.out = out; 40 this.selected_id = selected_id; 41 this.exclude_domain_id = exclude_domain_id; 42 } 43 44 protected void visit(Lexeme e, String parentPath) throws IOException 45 { 46 if (e.id == exclude_domain_id) return; 47 super.visit(e, parentPath); 48 } 49 50 protected void output(Lexeme e, String fullPath, String desc) 51 throws IOException 52 { 53 if (desc.length() > 60) 54 { 55 desc = desc.substring(0, 60) + "..."; 56 } 57 58 if (e.surface != null) 59 { 60 desc += ": " + e.surface + ""; 61 } 62 63 String ls = e.getLogicalStructure(); 64 if (ls != null) 65 { 66 desc += ": " + ls; 67 } 68 69 desc = desc.replaceAll("&", "&") 70 .replaceAll("<", "<") 71 .replaceAll(">", ">"); 72 73 74 %> 75 <option <%= selected_id == e.id ? "selected=\"selected\"" : "" 76 %> value="<%= e.id == 0 ? "BadID" : (e.id+"") %>"> 77 <%= fullPath %> <%= desc %></option> 78 <% 79 } 38 %> 39 <div id="error_message"> 40 <ul> 41 <% for (String error : errors) { %> 42 <li><%= error %></li> 43 <% } %> 44 </ul> 45 </div> 46 <% 80 47 } 81 48 82 class LogicalStructureArray extends Lexeme.Visitor83 {84 private JspWriter out;85 private int selected_id, exclude_domain_id;86 87 LogicalStructureArray(JspWriter out,88 int selected_id, Lexeme root)89 {90 super(root);91 this.out = out;92 this.selected_id = selected_id;93 }94 95 protected void output(Lexeme e, String fullPath, String desc)96 throws IOException97 {98 String ls = e.getLogicalStructure();99 100 if (e.surface != null && ! e.surface.equals(""))101 {102 desc += ": " + e.surface + "";103 }104 105 if (ls != null && ! ls.equals(""))106 {107 desc += ": " + ls;108 }109 110 %>111 [ <%= e.id %>, "<%= fullPath %> <%= desc %>" ],112 <%113 }114 }115 116 int lsId = -1;117 try { lsId = Integer.parseInt(request.getParameter("lsid")); }118 catch (Exception e) { /* do nothing, use default */ }119 120 // String current.surface = "", current.logic = "";121 // int domain_parent_id = 0;122 // String current.label = "", current.desc = "";123 124 %><p><em><%125 126 if (request.getParameter("createnew") != null)127 {128 SqlChange ch = (SqlChange)sql.createChange(SqlChange.INSERT,129 "lexicon_entries", null);130 ch.setString("Domain_Desc", "New Entry");131 ch.execute();132 lsId = ch.getInsertedRowId();133 }134 else if (request.getParameter("savecopy") != null)135 {136 throw new AssertionError("broken");137 /*138 boolean createNew = false;139 140 if (lsId <= 0)141 createNew = true;142 if (request.getParameter("savecopy") != null)143 createNew = true;144 145 try {146 147 if (request.getParameter("surface") != null)148 {149 ch.setString("Lexeme", request.getParameter("surface"));150 }151 ch.setString("Structure", request.getParameter("ls"));152 ch.setInt ("Domain_Parent_ID", domain_parent_id);153 ch.setString("Domain_Label", request.getParameter("dl"));154 ch.setString("Domain_Desc", request.getParameter("dd"));155 ch.setString("Syntactic_Args", request.getParameter("sa"));156 ch.execute();157 158 if (createNew) {159 lsId = ((SqlChange)ch).getInsertedRowId();160 }161 } catch (SQLException sqlEx) {162 %><%= sqlEx %><%163 }164 */165 }166 else if (request.getParameter("delrepl") != null)167 {168 try169 {170 int newLsId = Integer.parseInt(request.getParameter("newlsid"));171 172 Sheaf sheaf = emdros.getSheaf173 ("SELECT ALL OBJECTS "+174 "IN {" + emdros.getMinM() + "-" + emdros.getMaxM() + "} "+175 "WHERE [clause logical_struct_id = "+lsId+"]");176 177 SheafConstIterator sci = sheaf.const_iterator();178 if (sci.hasNext()) {179 Vector objectIds = new Vector();180 181 while (sci.hasNext()) {182 Straw straw = sci.next();183 MatchedObject clause = straw.const_iterator().next();184 objectIds.add(new Integer(clause.getID_D()));185 }186 187 int [] objectIdArray = new int[objectIds.size()];188 for (int i = 0; i < objectIds.size(); i++) {189 objectIdArray[i] =190 ((Integer)( objectIds.get(i) )).intValue();191 }192 193 Change ch = emdros.createChange(194 EmdrosChange.UPDATE, "clause", objectIdArray);195 ch.setInt("logical_struct_id", newLsId);196 ch.execute();197 }198 199 sql.createChange(SqlChange.DELETE,200 "lexicon_entries", "ID = "+lsId).execute();201 lsId = newLsId;202 }203 catch (Exception e)204 {205 %><%= e %><%206 }207 }208 else if (request.getParameter("vcu") != null)209 {210 // variable create or update211 212 boolean createVar = false;213 int vid = 0;214 if (request.getParameter("vid") != null) {215 try {216 vid = new Integer(request.getParameter("vid")).intValue();217 } catch (NumberFormatException e) {218 vid = 0;219 }220 }221 if (vid == 0) createVar = true;222 223 try {224 String query =225 "SELECT ID FROM lexicon_variables WHERE Name = ? "+226 "AND Lexeme_ID = ?";227 228 if (!createVar)229 query += " AND ID <> ?";230 231 PreparedStatement stmt = sql.prepareSelect(query);232 stmt.setString(1, request.getParameter("vn"));233 stmt.setInt (2, lsId);234 if (!createVar)235 stmt.setInt(3, vid);236 237 ResultSet rs = sql.select();238 boolean alreadyExists = rs.next();239 sql.finish();240 241 if (alreadyExists) {242 %>243 Duplicate variable name244 "<%= request.getParameter("vn") %>"245 <%246 } else {247 Change ch;248 249 if (createVar) {250 ch = sql.createChange(SqlChange.INSERT,251 "lexicon_variables", null);252 } else {253 ch = sql.createChange(SqlChange.UPDATE,254 "lexicon_variables", "ID = "+vid);255 }256 257 ch.setString("Name", request.getParameter("vn"));258 ch.setString("Value", request.getParameter("vv"));259 ch.setInt ("Lexeme_ID", lsId);260 ch.execute();261 }262 } catch (DatabaseException sqlEx) {263 %><%= sqlEx %><%264 }265 }266 else if (request.getParameter("vd") != null)267 {268 // variable delete269 270 int vid = 0;271 272 if (request.getParameter("vid") != null) {273 try {274 vid = new Integer(request.getParameter("vid")).intValue();275 } catch (NumberFormatException e) {276 vid = 0;277 }278 }279 280 if (vid != 0) {281 try {282 sql.createChange(SqlChange.DELETE,283 "lexicon_variables", "ID = "+vid).execute();284 } catch (DatabaseException sqlEx) {285 %><%= sqlEx %><%286 }287 }288 }289 else if (request.getParameter("dpid") != null)290 {291 int domain_parent_id = new Integer(request.getParameter("dpid"))292 .intValue();293 294 // parent hierarchy loop check295 296 if (domain_parent_id == lsId)297 {298 domain_parent_id = 0;299 }300 301 if (domain_parent_id > 0)302 {303 int maxDepth = 20;304 int thisAncestor = domain_parent_id;305 306 while (maxDepth > 0)307 {308 try309 {310 PreparedStatement stmt = sql.prepareSelect311 ("SELECT Domain_Parent_ID "+312 "FROM lexicon_entries "+313 "WHERE ID = ?");314 stmt.setInt(1, thisAncestor);315 ResultSet rs = sql.select();316 if (!rs.next()) {317 // parent tree has no path to root?318 domain_parent_id = 0;319 break;320 }321 thisAncestor = rs.getInt(1);322 if (thisAncestor == 0) {323 // reached the root324 break;325 }326 if (thisAncestor == lsId) {327 // loop detected328 domain_parent_id = 0;329 break;330 }331 maxDepth--;332 } finally {333 sql.finish();334 }335 }336 337 if (maxDepth == 0) {338 %>339 You cannot set the domain parent to one of this340 object's children: that would create a loop!341 <%342 domain_parent_id = 0;343 }344 }345 346 Change ch = sql.createChange(SqlChange.UPDATE, "lexicon_entries",347 "ID = " + lsId);348 ch.setInt("Domain_Parent_ID", domain_parent_id);349 ch.execute();350 }351 else if (request.getParameter("dl") != null)352 {353 Change ch = sql.createChange(SqlChange.UPDATE, "lexicon_entries",354 "ID = " + lsId);355 ch.setString("Domain_Label", request.getParameter("dl"));356 ch.execute();357 }358 else if (request.getParameter("dd") != null)359 {360 Change ch = sql.createChange(SqlChange.UPDATE, "lexicon_entries",361 "ID = " + lsId);362 ch.setString("Domain_Desc", request.getParameter("dd"));363 ch.execute();364 }365 else if (request.getParameter("sa") != null)366 {367 Change ch = sql.createChange(SqlChange.UPDATE, "lexicon_entries",368 "ID = " + lsId);369 ch.setString("Syntactic_Args", request.getParameter("sa"));370 ch.execute();371 }372 else if (request.getParameter("ls_save") != null)373 {374 Lexeme lexeme = new Lexeme(sql);375 376 if (lsId != -1)377 {378 lexeme = Lexeme.load(sql, lsId);379 }380 381 lexeme.setCaused (request.getParameter("ls_caused") != null);382 lexeme.setPunctual (request.getParameter("ls_punct") != null);383 lexeme.setHasResultState (request.getParameter("ls_punct_result") != null &&384 request.getParameter("ls_punct_result").equals("1"));385 lexeme.setTelic (request.getParameter("ls_telic") != null);386 lexeme.setDynamic (request.getParameter("ls_dynamic") != null &&387 request.getParameter("ls_dynamic").equals("1"));388 lexeme.setHasEndpoint (request.getParameter("ls_endpoint") != null &&389 request.getParameter("ls_endpoint").equals("1"));390 391 String pred = request.getParameter("ls_pred");392 if (pred != null && pred.equals(""))393 {394 pred = null;395 }396 lexeme.setPredicate(pred);397 398 pred = request.getParameter("ls_pred_2");399 if (pred != null && pred.equals(""))400 {401 pred = null;402 }403 lexeme.setResultPredicate(pred);404 405 String arg2 = request.getParameter("ls_arg_2");406 if (arg2 != null && arg2.equals(""))407 {408 arg2 = null;409 }410 lexeme.setResultPredicateArg(arg2);411 412 if (request.getParameter("ls_trel") != null)413 {414 if (request.getParameter("ls_trel").equals(""))415 {416 lexeme.setThematicRelation(null);417 }418 else419 {420 int i = Integer.parseInt(request.getParameter("ls_trel"));421 lexeme.setThematicRelation(ThematicRelation.list()[i]);422 }423 }424 425 lexeme.save();426 lsId = lexeme.id;427 }428 429 %></em></p><%430 431 49 Lexeme root = Lexeme.getTreeRoot(sql); 432 Lexeme.Finder finder = new Lexeme.Finder(root, lsId); 50 Lexeme.Finder finder = new Lexeme.Finder(root, 51 controller.getLexeme().getID()); 433 52 finder.visit(); 434 53 Lexeme current = finder.getFoundLexeme(); … … 441 60 [ "BadID", "New Structure..." ], 442 61 <% 443 new LogicalStructureArray(out, lsId, root).visit();62 controller.new LogicalStructureArray(out, root).visit(); 444 63 %> 445 64 ]; 446 65 447 66 //--></script> 448 <script type="text/javascript" src=" lsedit.js"></script>449 450 <form name="nav" method="get" action="l sedit.jsp">67 <script type="text/javascript" src="js/lsedit.js"></script> 68 69 <form name="nav" method="get" action="lexicon.jsp"> 451 70 <table> 452 71 <tr class="nav1"><th colspan="4">Navigator</th></tr> 453 72 <tr class="nav2"> 454 <th>Filter</th>455 <th>Lexicon Entry</th>456 <th>Action</th>73 <th>Filter</th> 74 <th>Lexicon Entry</th> 75 <th>Action</th> 457 76 </tr> 458 77 <tr class="nav1"> … … 460 79 request.getParameter("filter") != null 461 80 ? request.getParameter("filter") : "" 462 %>" onKeyUp="doFilter(filter, lsid, logics)" /></td> 81 %>" onKeyUp="doFilter(filter, lsid, logics, 82 <%= controller.getLexeme().getID() %>)" /></td> 463 83 <td> 464 <select name="lsid"> 465 <option value="">New Structure...</option> 466 <% new LogicalStructureList(out, lsId, -1, root).visit(); %> 467 </select> 84 <% 85 LexiconController.LogicalStructureList navigateStructureLister = 86 controller.new LogicalStructureList(-1, root); 87 navigateStructureLister.visit(); 88 List<String[]> navigateStructures = navigateStructureLister.getValues(); 89 navigateStructures.add(0, new String[]{"", "New Structure..."}); 90 %> 91 <%= new SelectBox("lsid", navigateStructures, request).toString() %> 468 92 </td> 469 93 <td> … … 477 101 478 102 var nav = document.forms.nav; 479 doFilter(nav.filter, nav.lsid, logics );103 doFilter(nav.filter, nav.lsid, logics, <%= controller.getLexeme().getID() %>); 480 104 481 105 //--></script> 482 106 483 107 <% 484 if ( lsId== -1)108 if (controller.getLexeme().getID() == -1) 485 109 { 486 110 %> … … 488 112 <% 489 113 } 490 else if ( lsId== 0)114 else if (controller.getLexeme().getID() == 0) 491 115 { 492 116 %> … … 510 134 <tr> 511 135 <td>ID</td> 512 <td><%= lsId <= 0 ? "New" : (lsId + "") %></td> 136 <td><%= controller.getLexeme().getID() <= 0 ? "New" : 137 (controller.getLexeme().getID() + "") %></td> 513 138 </tr> 514 139 <tr> … … 529 154 <td>Syntactic Macroroles</td> 530 155 <td> 531 <form method="POST" action="lsedit.jsp"> 532 <input type="hidden" name="lsid" value="<%= lsId %>"> 533 <select name="sa"> 534 <option <%= 535 (current.numSyntacticArgs==-1)?"SELECTED":"" 536 %> value="-1">Unknown/Not Specified 537 <option <%= 538 (current.numSyntacticArgs==0)?"SELECTED":"" 539 %> value="0">None 540 <option <%= 541 (current.numSyntacticArgs==1)?"SELECTED":"" 542 %> value="1">MR1 543 <option <%= 544 (current.numSyntacticArgs==2)?"SELECTED":"" 545 %> value="2">MR2 546 <option <%= 547 (current.numSyntacticArgs==3)?"SELECTED":"" 548 %> value="3">MR3 549 </select> 156 <form method="POST" action="lexicon.jsp"> 157 <input type="hidden" name="lsid" value="<%= 158 controller.getLexeme().getID() %>"> 159 <% 160 List<String[]> options = Arrays.asList(new String[][]{ 161 new String[]{"-1", "Unknown/Not Specified"}, 162 new String[]{"0", "None"}, 163 new String[]{"1", "MR1"}, 164 new String[]{"2", "MR2"}, 165 new String[]{"3", "MR3"} 166 }); 167 SelectBox sb = new SelectBox("sa", options, request); 168 sb.setDefaultValue("" + current.getNumSyntacticArgs()); 169 %> 170 <%= sb.toString() %> 550 171 <input type="submit" value="Save"/> 551 172 </form> … … 583 204 .replaceAll("<", "<") 584 205 .replaceAll(">", ">") + 585 " (from <a href=\"l sedit.jsp?lsid=" + l.id+586 "\">" + l. id+ "</a>)\n");206 " (from <a href=\"lexicon.jsp?lsid=" + l.getID() + 207 "\">" + l.getID() + "</a>)\n"); 587 208 } 588 209 %> … … 628 249 <td><%= v.name %></td> 629 250 <td><%= v.value %></td> 630 <td><a href="l sedit.jsp?lsid=<%= v.lexemeId %>"><%= v.lexemeId %></a></td>251 <td><a href="lexicon.jsp?lsid=<%= v.lexemeId %>"><%= v.lexemeId %></a></td> 631 252 </tr> 632 253 <% … … 655 276 <td> 656 277 <% 657 if ( lsId<= 0) {278 if (controller.getLexeme().getID() <= 0) { 658 279 %>Save this new structure before creating variables.<% 659 280 } else { … … 680 301 %> 681 302 <tr> 682 <form method="POST" action="l sedit.jsp">303 <form method="POST" action="lexicon.jsp"> 683 304 <input type="hidden" name="vid" value="<%= v.id %>"> 684 <input type="hidden" name="lsid" value="<%= lsId %>"> 305 <input type="hidden" name="lsid" value="<%= 306 controller.getLexeme().getID() %>"> 685 307 <td><input name="vn" value="<%= v.name %>"></td> 686 308 <td> … … 699 321 %> 700 322 <tr> 701 <form method="POST" action="lsedit.jsp"> 702 <input type="hidden" name="lsid" value="<%= lsId %>"> 323 <form method="POST" action="lexicon.jsp"> 324 <input type="hidden" name="lsid" value="<%= 325 controller.getLexeme().getID() %>"> 703 326 <td><input name="vn"></td> 704 327 <td> … … 721 344 </form> 722 345 723 <form name="lsform" method="POST" action="lsedit.jsp"> 724 <input type="hidden" name="lsid" value="<%= lsId %>" /> 346 <form name="lsform" method="POST" action="lexicon.jsp"> 347 <input type="hidden" name="lsid" value="<%= 348 controller.getLexeme().getID() %>" /> 725 349 <table> 726 350 <tr> … … 1001 625 [ "0", "None" ], 1002 626 <% 1003 new LogicalStructureArray(out, current.parentId, root).visit();627 controller.new LogicalStructureArray(out, root).visit(); 1004 628 %> 1005 629 ]; 1006 630 //--></script> 1007 631 1008 <form name="dpform" method="POST" action="lsedit.jsp"> 1009 <input type="hidden" name="lsid" value="<%= lsId %>" /> 1010 <input name="filter" onKeyUp="doFilter(filter, dpid, parents)" /> 1011 <select name="dpid"> 1012 <option <%= 1013 current.parentId == 0 ? "selected=\"selected\"" : "" 1014 %> value="0">None</option> 632 <form name="dpform" method="POST" action="lexicon.jsp"> 633 <input type="hidden" name="lsid" value="<%= 634 controller.getLexeme().getID() %>" /> 635 <input name="filter" onKeyUp="doFilter(filter, dpid, parents, 636 <%= controller.getLexeme().getID() %>)" /> 1015 637 <% 1016 new LogicalStructureList(out, current.parentId, -1, root) 1017 .visit(); 638 LexiconController.LogicalStructureList parentStructureLister = 639 controller.new LogicalStructureList( 640 controller.getLexeme().getID(), root); 641 parentStructureLister.visit(); 642 List<String[]> parentStructures = parentStructureLister.getValues(); 643 parentStructures.add(0, new String[]{"0", "None"}); 1018 644 %> 1019 < /select>645 <%= new SelectBox("dpid", parentStructures, request).toString() %> 1020 646 <input type="submit" value="Save" /> 1021 647 </form> … … 1025 651 <td>Domain Label</td> 1026 652 <td> 1027 <form name="dlform" method="POST" action="lsedit.jsp"> 1028 <input type="hidden" name="lsid" value="<%= lsId %>"> 653 <form name="dlform" method="POST" action="lexicon.jsp"> 654 <input type="hidden" name="lsid" value="<%= 655 controller.getLexeme().getID() %>"> 1029 656 <input name="dl" value="<%= 1030 657 current.label == null ? "" : current.label … … 1037 664 <td>Domain Description</td> 1038 665 <td> 1039 <form name="ddform" method="POST" action="lsedit.jsp"> 1040 <input type="hidden" name="lsid" value="<%= lsId %>"> 666 <form name="ddform" method="POST" action="lexicon.jsp"> 667 <input type="hidden" name="lsid" value="<%= 668 controller.getLexeme().getID() %>"> 1041 669 <input name="dd" width="80" size="80" value="<%= 1042 670 current.desc == null ? "" : current.desc … … 1050 678 <td>Save changes</td> 1051 679 <td> 1052 <form name="cpform" method="POST" action="lsedit.jsp"> 1053 <input type="hidden" name="lsid" value="<%= lsId %>" /> 680 <form name="cpform" method="POST" action="lexicon.jsp"> 681 <input type="hidden" name="lsid" value="<%= 682 controller.getLexeme().getID() %>" /> 1054 683 <input type="hidden" name="surface" value="<%= surface %>" /> 1055 684 <input type="submit" name="savecopy" value="Save Copy" /> … … 1066 695 </p> 1067 696 1068 <form name="delform" method="POST" action="lsedit.jsp"> 1069 <input type="hidden" name="lsid" value="<%= lsId %>"> 1070 <select name="newlsid"> 1071 <option value="0">Not specified 1072 <% new LogicalStructureList(out, 0, lsId, root).visit(); %> 1073 </select> 697 <form name="delform" method="POST" action="lexicon.jsp"> 698 <input type="hidden" name="lsid" value="<%= controller.getLexeme().getID() %>"> 699 <% 700 LexiconController.LogicalStructureList replacementStructureLister = 701 controller.new LogicalStructureList(0, root); 702 replacementStructureLister.visit(); 703 List<String[]> replacementStructures = replacementStructureLister.getValues(); 704 replacementStructures.add(0, new String[]{"0", "Not specified"}); 705 %> 706 <%= new SelectBox("newlsid", replacementStructures, request).toString() %> 1074 707 <input type="submit" name="delrepl" value="Delete"> 1075 708 </form> 1076 709 1077 710 <% 1078 } // end if ( lsId<= 0)711 } // end if (controller.getLexeme().getID() <= 0) 1079 712 %> 1080 713 1081 <form name="addform" method="POST" action="l sedit.jsp">714 <form name="addform" method="POST" action="lexicon.jsp"> 1082 715 <h2 style="color: red">Create</h2> 1083 716 <p> … … 1087 720 </form> 1088 721 1089 <%@ include file=" footer.jsp" %>722 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/parse.jsp
r334 r394 1 <%@ include file="include/setup.jsp" %> 2 <%@ include file="include/auth.jsp" %> 3 1 4 <% String pageTitle = "Parser Testing"; %> 2 <%@ include file=" header2.jsp" %>5 <%@ include file="include/header.jsp" %> 3 6 4 7 <%@ page import="java.util.*" %> … … 10 13 <%@ page import="com.qwirx.lex.wordnet.*" %> 11 14 12 <%@ include file=" auth.jsp" %>13 <%@ include file=" navclause.jsp" %>15 <%@ include file="include/navclause_head.jsp" %> 16 <%@ include file="include/navclause_body.jsp" %> 14 17 15 18 <script language="javascript" src="js/parsetree.js"></script> … … 418 421 %> 419 422 420 <%@ include file=" footer.jsp" %>423 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/published.jsp
r389 r394 1 1 <% String pageTitle = "Published Data"; %> 2 <%@ include file="header2.jsp" %>3 2 4 3 <%@ page import="java.util.*" %> … … 10 9 <%@ page import="jemdros.*" %> 11 10 <%@ page import="org.aptivate.web.utils.EditField" %> 11 12 <%@ include file="include/setup.jsp" %> 13 <%@ include file="include/auth.jsp" %> 14 <%@ include file="include/header.jsp" %> 12 15 13 16 <% … … 64 67 HebrewConverter.toHtml(result.getLogicalStructure()) 65 68 %></td> 66 <td><a href="<%= result.getLinkUrl() %>"><%= 69 <td><a href="<%= 70 EditField.escapeEntities(result.getLinkUrl()) 71 %>"><%= 67 72 result.getLocation() 68 73 %></a></td> … … 77 82 %> 78 83 79 <%@ include file=" footer.jsp" %>84 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/rules.jsp
r291 r394 1 <%@ include file="include/setup.jsp" %> 2 <%@ include file="include/auth.jsp" %> 3 1 4 <% String pageTitle = "Parser Rules"; %> 2 <%@ include file=" header2.jsp" %>5 <%@ include file="include/header.jsp" %> 3 6 4 7 <%@ page import="java.util.*" %> … … 19 22 //--> 20 23 </script> 21 22 <%@ include file="auth.jsp" %>23 24 24 25 <% … … 129 130 %> 130 131 131 <%@ include file=" footer.jsp" %>132 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/search.jsp
r372 r394 1 <%@ include file="include/setup.jsp" %> 2 1 3 <% String pageTitle = "Search"; %> 2 <%@ include file=" header2.jsp" %>4 <%@ include file="include/header.jsp" %> 3 5 4 6 <%@ page import="java.util.*" %> … … 221 223 %> 222 224 223 <%@ include file=" footer.jsp" %>225 <%@ include file="include/footer.jsp" %> lex/trunk/jsp/wordnet.jsp
r325 r394 1 1 <% String pageTitle = "Text Browser with Wordnet"; %> 2 <%@ include file=" header2.jsp" %>2 <%@ include file="include/header.jsp" %> 3 3 4 4 <%@ page import="java.util.*" %> … … 1304 1304 %> 1305 1305 <td> 1306 <form name="editls" method="get" action="l sedit.jsp">1306 <form name="editls" method="get" action="lexicon.jsp"> 1307 1307 <input type="hidden" name="lsid" value="<%= currentLsId %>"> 1308 1308 <input type="submit" name="submit" value="Edit..."> … … 1554 1554 </form> 1555 1555 1556 <%@ include file=" footer.jsp" %>1556 <%@ include file="include/footer.jsp" %> lex/trunk/src/com/qwirx/lex/controller/ClauseController.java
r391 r394 13 13 14 14 import javax.servlet.http.HttpServletRequest; 15 import javax.servlet.http.HttpServletResponse; 15 16 16 17 import jemdros.EMdFValue; 17 18 import jemdros.MatchedObject; 19 import jemdros.SetOfMonads; 18 20 import jemdros.SheafConstIterator; 19 21 22 import org.aptivate.web.controls.SelectBox; 20 23 import org.aptivate.web.utils.EditField; 21 24 import org.crosswire.jsword.book.BookData; … … 86 89 */ 87 90 public ClauseController(EmdrosDatabase emdros, SqlDatabase sql, 88 int clauseId)91 SetOfMonads focusMonads, int clauseId) 89 92 throws Exception 90 93 { 91 94 super(emdros, sql); 92 loadClause( emdros.getMinM(), emdros.getMaxM(), clauseId);95 loadClause(focusMonads, clauseId); 93 96 } 94 97 … … 98 101 { 99 102 super(request, emdros, sql, navigator); 100 101 m_SwordVerse = KJV.getVerse(emdros, navigator); 102 103 if (request.getParameter("savearg") != null) 103 } 104 105 public boolean processRedirects(HttpServletResponse response) 106 throws Exception 107 { 108 if (m_Request.getParameter("savearg") != null) 104 109 { 105 110 int phraseId = getParamInt("phraseid"); 106 String newArg = request.getParameter("newarg");107 Change ch = emdros.createChange(EmdrosChange.UPDATE,111 String newArg = m_Request.getParameter("newarg"); 112 Change ch = m_Emdros.createChange(EmdrosChange.UPDATE, 108 113 "phrase", new int[]{phraseId}); 109 114 ch.setString("argument_name", newArg); … … 111 116 } 112 117 113 if ( request.getParameter("changemr") != null &&114 request.getParameter("mr") != null)118 if (m_Request.getParameter("changemr") != null && 119 m_Request.getParameter("mr") != null) 115 120 { 116 121 int phraseId = getParamInt("pid"); 117 122 int newMR = getParamInt("mr"); 118 Change ch = emdros.createChange(EmdrosChange.UPDATE,123 Change ch = m_Emdros.createChange(EmdrosChange.UPDATE, 119 124 "phrase", new int[]{phraseId}); 120 125 ch.setInt("macrorole_number", newMR); … … 132 137 } 133 138 134 if ( request.getParameter("wags") != null) // WIVU alternate gloss save135 { 136 Change ch = emdros.createChange(EmdrosChange.UPDATE, "word",137 new int[]{Integer.parseInt( request.getParameter("wagw"))});138 ch.setString("wivu_alternate_gloss", request.getParameter("wagv"));139 if (m_Request.getParameter("wags") != null) // WIVU alternate gloss save 140 { 141 Change ch = m_Emdros.createChange(EmdrosChange.UPDATE, "word", 142 new int[]{Integer.parseInt(m_Request.getParameter("wagw"))}); 143 ch.setString("wivu_alternate_gloss", m_Request.getParameter("wagv")); 139 144 ch.execute(); 140 145 } … … 145 150 m_Clause.getEMdFValue("logical_struct_id").getInt(); 146 151 147 { 148 String newLsString = request.getParameter("newls"); 149 boolean saveLs = (request.getParameter("lssave") != null); 150 151 if (request.getParameter("create") != null && newLsString != null) 152 { 153 Change ch = sql.createChange(SqlChange.INSERT, 152 if (m_Request.getParameter("lssave") != null) 153 { 154 String newLsString = m_Request.getParameter("newls"); 155 boolean saveLs = false; 156 String selLsIdString = m_Request.getParameter("lsid"); 157 158 if (selLsIdString.equals("add")) 159 { 160 // create a new structure to assign it to this clause 161 String predicateText = getPredicateText(); 162 if (predicateText == null) 163 { 164 predicateText = ""; 165 } 166 167 Change ch = m_Sql.createChange(SqlChange.INSERT, 154 168 "lexicon_entries", null); 155 ch.setString("Lexeme", getPredicateText());169 ch.setString("Lexeme", predicateText); 156 170 ch.setString("Structure", newLsString); 157 171 ch.execute(); … … 161 175 else 162 176 { 163 String selLsIdString = request.getParameter("lsid");164 177 try 165 178 { 166 179 m_SelectedLogicalStructureId = Integer.parseInt(selLsIdString); 180 saveLs = true; 167 181 } 168 182 catch (Exception e) … … 174 188 if (saveLs) 175 189 { 176 Change ch = emdros.createChange(EmdrosChange.UPDATE,177 "clause", new int[]{ navigator.getClauseId()});190 Change ch = m_Emdros.createChange(EmdrosChange.UPDATE, 191 "clause", new int[]{m_Navigator.getClauseId()}); 178 192 ch.setInt("logical_struct_id", m_SelectedLogicalStructureId); 179 193 ch.execute(); 180 194 } 181 } 182 183 PreparedStatement stmt = sql.prepareSelect( 195 196 if (selLsIdString.equals("add")) 197 { 198 // the logical structure is pretty useless right now, 199 // so redirect to the LS editor to configure it. 200 response.sendRedirect("lexicon.jsp?lsid=" + 201 m_SelectedLogicalStructureId); 202 return true; // stop processing this request 203 } 204 } 205 206 PreparedStatement stmt = m_Sql.prepareSelect( 184 207 "SELECT ID,Structure,Syntactic_Args " + 185 208 "FROM lexicon_entries WHERE ID = ?"); 186 209 stmt.setInt(1, m_SelectedLogicalStructureId); 187 210 188 ResultSet rs = sql.select();211 ResultSet rs = m_Sql.select(); 189 212 190 213 if (rs.next()) … … 202 225 } 203 226 204 sql.finish();205 206 if ( request.getParameter("nc") != null &&207 request.getParameter("nt") != null)208 { 209 String newNoteText = request.getParameter("nt");227 m_Sql.finish(); 228 229 if (m_Request.getParameter("nc") != null && 230 m_Request.getParameter("nt") != null) 231 { 232 String newNoteText = m_Request.getParameter("nt"); 210 233 211 234 EmdrosChange ch = (EmdrosChange)( 212 235 m_Emdros.createChange(EmdrosChange.CREATE, 213 "note", new int[]{ navigator.getClauseId()}));236 "note", new int[]{m_Navigator.getClauseId()})); 214 237 ch.setString("text", newNoteText); 215 238 ch.execute(); 216 239 } 217 240 218 if ( request.getParameter("nu") != null &&219 request.getParameter("ni") != null &&220 request.getParameter("nt") != null)221 { 222 String updateNoteIdString = request.getParameter("ni");241 if (m_Request.getParameter("nu") != null && 242 m_Request.getParameter("ni") != null && 243 m_Request.getParameter("nt") != null) 244 { 245 String updateNoteIdString = m_Request.getParameter("ni"); 223 246 int updateNoteId = Integer.parseInt(updateNoteIdString); 224 String newNoteText = request.getParameter("nt");247 String newNoteText = m_Request.getParameter("nt"); 225 248 226 249 EmdrosChange ch = (EmdrosChange)( 227 emdros.createChange(EmdrosChange.UPDATE,250 m_Emdros.createChange(EmdrosChange.UPDATE, 228 251 "note", new int [] {updateNoteId})); 229 252 ch.setString("text", newNoteText); … … 231 254 } 232 255 233 if ( request.getParameter("nd") != null &&234 request.getParameter("ni") != null)235 { 236 String deleteNoteIdString = request.getParameter("ni");256 if (m_Request.getParameter("nd") != null && 257 m_Request.getParameter("ni") != null) 258 { 259 String deleteNoteIdString = m_Request.getParameter("ni"); 237 260 int deleteNoteId = Integer.parseInt(deleteNoteIdString); 238 261 239 262 EmdrosChange ch = (EmdrosChange)( 240 emdros.createChange(EmdrosChange.DELETE,263 m_Emdros.createChange(EmdrosChange.DELETE, 241 264 "note", new int[]{deleteNoteId})); 242 265 ch.execute(); … … 268 291 ch.execute(); 269 292 } 270 else if ( request.getParameter("unpublish") != null)271 { 272 Change ch = sql.createChange(SqlChange.DELETE,293 else if (m_Request.getParameter("unpublish") != null) 294 { 295 Change ch = m_Sql.createChange(SqlChange.DELETE, 273 296 "user_text_access", 274 297 "Monad_First = " + m_Clause.getMonads().first() + " AND " + … … 277 300 ch.execute(); 278 301 279 ch = emdros.createChange(EmdrosChange.UPDATE, "clause",302 ch = m_Emdros.createChange(EmdrosChange.UPDATE, "clause", 280 303 new int[]{m_Clause.getID_D()}); 281 304 ch.setInt("published", 0); … … 372 395 .getString(); 373 396 if (! currentStruct.equals(m_LinkedLogicalStructure) && 374 emdros.canWriteTo(m_Clause))375 { 376 Change ch = emdros.createChange(EmdrosChange.UPDATE,377 "clause", new int[]{ navigator.getClauseId()});397 m_Emdros.canWriteTo(m_Clause)) 398 { 399 Change ch = m_Emdros.createChange(EmdrosChange.UPDATE, 400 "clause", new int[]{m_Navigator.getClauseId()}); 378 401 ch.setString("logical_structure", m_LinkedLogicalStructure); 379 402 ch.execute(); 380 403 } 404 405 return false; 406 } 407 408 public void processBody() throws Exception 409 { 410 m_SwordVerse = KJV.getVerse(m_Emdros, m_Navigator); 381 411 } 382 412 … … 1260 1290 return m_LinkedLogicalStructure; 1261 1291 } 1292 1293 public SelectBox getLogicalStructureSelector() throws Exception 1294 { 1295 List<Object> options = new ArrayList<Object>(); 1296 options.add(new String[]{"0", "Not specified"}); 1297 1298 Lexeme [] possibleStructures = Lexeme.loadAll(m_Sql, getPredicateText()); 1299 1300 for (Lexeme structure : possibleStructures) 1301 { 1302 options.add(new String[]{"" + structure.getID(), 1303 structure.getLogicalStructure()}); 1304 } 1305 1306 options.add(new String[]{"add", "Add new..."}); 1307 SelectBox sb = new SelectBox("lsid", options); 1308 sb.setAttribute("onchange", "enableEditButton(); " + 1309 "return enableChangeButton(lssave," + 1310 getSelectedLogicalStructureId() + 1311 ",lsid)"); 1312 sb.setDefaultValue("" + getSelectedLogicalStructureId()); 1313 return sb; 1314 } 1262 1315 } lex/trunk/src/com/qwirx/lex/controller/ControllerBase.java
r365 r394 9 9 10 10 import jemdros.MatchedObject; 11 import jemdros.SetOfMonads; 11 12 import jemdros.Sheaf; 12 13 import jemdros.SheafConstIterator; … … 55 56 this(request, emdros, sql); 56 57 m_Navigator = navigator; 57 m_Transliterator = navigator.getTransliterator(); 58 if (navigator != null) 59 { 60 m_Transliterator = navigator.getTransliterator(); 61 } 58 62 } 59 63 … … 91 95 throws Exception 92 96 { 93 loadClause(m_Navigator.getMinM(), m_Navigator.getMaxM(), 94 m_Navigator.getClauseId()); 97 loadClause(m_Navigator.getFocusMonads(), m_Navigator.getClauseId()); 95 98 } 96 99 … … 99 102 * @throws Exception 100 103 */ 101 protected void loadClause( int minM, int maxM, int clauseId)104 protected void loadClause(SetOfMonads focusMonads, int clauseId) 102 105 throws Exception 103 106 { 104 107 Sheaf sheaf = m_Emdros.getSheaf 105 108 ( 106 "SELECT ALL OBJECTS IN " + 107 "{" + minM + "-" + maxM + "} " + 109 "SELECT ALL OBJECTS IN " + focusMonads.toString() + 108 110 "WHERE [clause self = " + clauseId + 109 111 " GET logical_struct_id, logical_structure "+ lex/trunk/src/com/qwirx/lex/controller/Navigator.java
r367 r394 9 9 import javax.servlet.http.HttpSession; 10 10 11 import jemdros.BadMonadsException; 11 12 import jemdros.EmdrosException; 12 13 import jemdros.MatchedObject; … … 15 16 import jemdros.SheafConstIterator; 16 17 import jemdros.Table; 18 import jemdros.TableException; 17 19 import jemdros.TableIterator; 18 20 import jemdros.TableRow; 19 21 20 22 import org.aptivate.web.controls.SelectBox; 21 import org.aptivate.web.utils.EditField;22 23 23 24 import com.qwirx.db.DatabaseException; … … 33 34 private HttpSession m_Session; 34 35 private EmdrosDatabase m_Emdros; 35 private SetOfMonads m_VisibleMonads; 36 private int m_MinM, m_MaxM; 36 private SetOfMonads m_VisibleMonads, m_FocusMonads; 37 37 private DatabaseTransliterator m_Transliterator; 38 private EditField m_Form;39 38 40 39 public Navigator(HttpServletRequest request, HttpSession session, … … 46 45 m_Session = session; 47 46 m_Emdros = emdros; 48 m_VisibleMonads = emdros.getVisibleMonads(); 49 m_MinM = emdros.getMinM(); 50 m_MaxM = emdros.getMaxM(); 47 m_VisibleMonads = visibleMonads; 48 m_FocusMonads = m_VisibleMonads; 51 49 m_Transliterator = transliterator; 52 m_Form = new EditField(request);53 50 } 54 51 … … 80 77 } 81 78 82 p rivatevoid setParamOverride(String name, String value)79 public void setParamOverride(String name, String value) 83 80 { 84 81 m_ParamOverrideMap.put(name, value); … … 93 90 public String getLabel(String name) { return m_Labels.get(name); } 94 91 95 public String getObjectNavigator(String objectType, String labelAttribute) 96 throws DatabaseException, EmdrosException 92 public SelectBox getObjectNavigator(String objectType, 93 String labelAttribute) 94 throws DatabaseException 97 95 { 98 96 return getObjectNavigator(objectType, new String[]{labelAttribute}); 99 97 } 100 98 101 public S tringgetObjectNavigator(String objectType,99 public SelectBox getObjectNavigator(String objectType, 102 100 String [] labelAttributes) 103 throws DatabaseException , EmdrosException101 throws DatabaseException 104 102 { 105 103 String selectedObject = getSessionString(objectType, null); … … 109 107 Table objectTable = m_Emdros.getTable 110 108 ( 111 "SELECT OBJECTS HAVING MONADS IN " + 112 m_Emdros.intersect(m_VisibleMonads, m_MinM, m_MaxM) + 109 "SELECT OBJECTS HAVING MONADS IN " + m_FocusMonads.toString() + 113 110 " [" + objectType + "]" 114 111 ); … … 118 115 119 116 TableIterator rows = objectTable.iterator(); 120 while (rows.hasNext()) 121 { 122 TableRow row = rows.next(); 123 String objectId = row.getColumn(3); 124 125 id_dList.append(objectId); 126 127 if (rows.hasNext()) 128 { 129 id_dList.append(","); 130 } 131 132 if (objectId.equals(selectedObject)) 133 { 134 foundObject = true; 135 } 136 137 if (firstObject == null) 138 { 139 firstObject = objectId; 140 } 141 } 142 117 try 118 { 119 while (rows.hasNext()) 120 { 121 TableRow row = rows.next(); 122 String objectId = row.getColumn(3); 123 124 id_dList.append(objectId); 125 126 if (rows.hasNext()) 127 { 128 id_dList.append(","); 129 } 130 131 if (objectId.equals(selectedObject)) 132 { 133 foundObject = true; 134 } 135 136 if (firstObject == null) 137 { 138 firstObject = objectId; 139 } 140 } 141 } 142 catch (EmdrosException e) 143 { 144 throw new DatabaseException("Failed to find visible objects", e); 145 } 143 146 if (!foundObject && firstObject != null) 144 147 { … … 162 165 id_dList.toString() + " [" + objectType + "]"); 163 166 164 List<String[]> objects = m_Emdros.getTableAsListOfArrays( 165 query.toString(),columnMap);167 List<String[]> objects = m_Emdros.getTableAsListOfArrays(query.toString(), 168 columnMap); 166 169 167 170 for (String [] objectInfo : objects) … … 181 184 " [" + objectType + "]" 182 185 ); 183 TableRow monad_row = monadTable.iterator().next(); 184 int new_min_m = Integer.parseInt(monad_row.getColumn(2)); 185 int new_max_m = Integer.parseInt(monad_row.getColumn(3)); 186 if (m_MinM < new_min_m) m_MinM = new_min_m; 187 if (m_MaxM > new_max_m) m_MaxM = new_max_m; 188 if (m_MinM > m_MaxM) m_MaxM = m_MinM + 1; 186 187 SetOfMonads objectMonads = new SetOfMonads(); 188 189 try 190 { 191 TableRow monad_row = monadTable.iterator().next(); 192 System.out.println(monad_row.getColumn(2) + "-" + 193 monad_row.getColumn(3)); 194 objectMonads.add(Integer.parseInt(monad_row.getColumn(2)), 195 Integer.parseInt(monad_row.getColumn(3))); 196 } 197 catch (TableException te) 198 { 199 throw new DatabaseException("Failed to retrieve monads " + 200 "from object " + objectId, te); 201 } 202 catch (BadMonadsException bme) 203 { 204 throw new DatabaseException("Failed to retrieve monads " + 205 "from object " + objectId, bme); 206 } 207 208 m_FocusMonads = SetOfMonads.intersect(m_FocusMonads, 209 objectMonads); 210 189 211 // System.out.println("book restricts to " + min_m + "-" + max_m); 190 212 } … … 195 217 SelectBox sb = new SelectBox(objectType, objects, selectedObject); 196 218 sb.setAttribute("onChange", "document.forms.nav.submit()"); 197 return sb .toString();219 return sb; 198 220 } 199 221 … … 203 225 } 204 226 205 public S tringgetClauseNavigator()206 throws Exception227 public SelectBox getClauseNavigator() 228 throws DatabaseException 207 229 { 208 230 int selClauseId = getClauseId(); 209 MatchedObject verse = null;210 231 211 232 boolean foundSelectedClause = false; … … 215 236 Sheaf sheaf = m_Emdros.getSheaf 216 237 ( 217 "SELECT ALL OBJECTS IN " + 218 m_Emdros.intersect(m_VisibleMonads, m_MinM, m_MaxM) + 238 "SELECT ALL OBJECTS IN " + m_FocusMonads.toString() + 219 239 " WHERE " + 220 240 "[clause "+ … … 229 249 while (clause_iter.hasNext()) 230 250 { 231 MatchedObject clause = clause_iter.next().const_iterator().next(); 251 MatchedObject clause; 252 253 try 254 { 255 clause = clause_iter.next().const_iterator().next(); 256 } 257 catch (EmdrosException e) 258 { 259 throw new DatabaseException("Failed to iterate over clauses", e); 260 } 261 232 262 SheafConstIterator word_iter = clause.getSheaf().const_iterator(); 233 263 StringBuffer lexemes = new StringBuffer(); … … 235 265 while (word_iter.hasNext()) 236 266 { 237 MatchedObject word = word_iter.next().const_iterator().next(); 267 MatchedObject word; 268 269 try 270 { 271 word = word_iter.next().const_iterator().next(); 272 } 273 catch (EmdrosException e) 274 { 275 throw new DatabaseException("Failed to iterate over words", 276 e); 277 } 238 278 239 279 List<Morpheme> morphemes = generator.parse(word, false, … … 278 318 sb.setAttribute("onChange", "document.forms.nav.submit()"); 279 319 sb.setAttribute("class", "translit"); 280 return sb.toString(); 281 } 282 283 public int getMinM() 284 { 285 return m_MinM; 286 } 287 288 public int getMaxM() 289 { 290 return m_MaxM; 320 return sb; 321 } 322 323 public SelectBox [] getHebrewNavigator() 324 throws DatabaseException 325 { 326 return new SelectBox [] { 327 getObjectNavigator("book", "book"), 328 getObjectNavigator("chapter", "chapter"), 329 getObjectNavigator("verse", new String[]{"verse_label", "verse"}), 330 getClauseNavigator() 331 }; 332 } 333 334 public SetOfMonads getFocusMonads() 335 { 336 return new SetOfMonads(m_FocusMonads); 291 337 } 292 338 lex/trunk/src/com/qwirx/lex/emdros/EmdrosDatabase.java
r384 r394 12 12 import java.sql.SQLException; 13 13 import java.util.ArrayList; 14 import java.util.Arrays; 14 15 import java.util.HashMap; 15 16 import java.util.Hashtable; … … 338 339 339 340 public SetOfMonads intersect(SetOfMonads set, int min_m, int max_m) 340 throws EmdrosException341 throws DatabaseException 341 342 { 342 343 System.out.println(set.toString()); 343 344 System.out.println(min_m + " : " + max_m); 344 return SetOfMonads.intersect(set, new SetOfMonads(min_m, max_m)); 345 try 346 { 347 return SetOfMonads.intersect(set, new SetOfMonads(min_m, max_m)); 348 } 349 catch (EmdrosException e) 350 { 351 throw new DatabaseException("Failed to calculate " + 352 "monad intersection", e); 353 } 345 354 } 346 355 … … 357 366 if (id_ds != null && !canWriteTo(objectType, id_ds)) 358 367 { 368 StringBuffer objectIdsString = new StringBuffer(); 369 370 int [] objectIdsArray = (int [])objectIds; 371 372 for (int id : objectIdsArray) 373 { 374 if (objectIdsString.length() > 0) 375 { 376 objectIdsString.append(", "); 377 } 378 objectIdsString.append(id); 379 } 380 359 381 throw new DatabaseException("You do not have permission "+ 360 382 "to modify this object", changeType + " " + objectType + 361 " " + objectIds);383 " [" + objectIdsString.toString() + "]"); 362 384 } 363 385 // must check access to monads later lex/trunk/src/com/qwirx/lex/Lex.java
r369 r394 32 32 import com.qwirx.lex.ontology.OntologyDb; 33 33 import com.qwirx.lex.parser.Parser; 34 import com.qwirx.lex.test.unfinished.LexTest; 34 35 import com.qwirx.lex.translit.DatabaseTransliterator; 35 36 lex/trunk/src/com/qwirx/lex/lexicon/Lexeme.java
r356 r394 5 5 import java.sql.ResultSet; 6 6 import java.sql.SQLException; 7 import java.util.ArrayList; 7 8 import java.util.Collections; 8 9 import java.util.Hashtable; … … 51 52 } 52 53 53 p ublic int id, parentId, numSyntacticArgs;54 private int m_LexiconId, parentId, m_NumSyntacticArgs; 54 55 public String label, desc, surface, m_Gloss; 55 56 public Lexeme parent; … … 219 220 public boolean equals(Lexeme that) 220 221 { 221 if (this. id != that.id) return false;222 if (this.m_LexiconId != that.m_LexiconId) return false; 222 223 if (!compareMaybeNull(this.getLogicalStructure(), 223 224 that.getLogicalStructure())) … … 258 259 public int getID() 259 260 { 260 return id;261 return m_LexiconId; 261 262 } 262 263 … … 268 269 Lexeme l = new Lexeme(sqldb); 269 270 270 l. id = rs.getInt("ID");271 l.m_LexiconId = rs.getInt("ID"); 271 272 l.surface = rs.getString("Lexeme"); 272 273 l.m_Gloss = rs.getString("Gloss"); … … 274 275 l.desc = rs.getString("Domain_Desc"); 275 276 l.parentId = rs.getInt("Domain_Parent_ID"); 276 l. numSyntacticArgs = rs.getInt("Syntactic_Args");277 l.m_NumSyntacticArgs = rs.getInt("Syntactic_Args"); 277 278 278 279 l.setCaused (rs.getInt("Caused") == 1); … … 344 345 { 345 346 Lexeme result = null; 347 348 if (predicate == null) 349 { 350 predicate = ""; 351 } 352 353 try 354 { 355 PreparedStatement stmt = sqldb.prepareSelect 356 ("SELECT " + getColumnList() + " " + 357 "FROM lexicon_entries " + 358 "WHERE Lexeme = ? LIMIT 1"); 359 stmt.setString(1, predicate); 360 ResultSet rs = sqldb.select(); 361 362 if (!rs.next()) 363 { 364 return null; 365 } 366 367 result = load(sqldb, rs); 368 } 369 finally 370 { 371 sqldb.finish(); 372 } 373 374 return result; 375 } 376 377 public static Lexeme[] loadAll(SqlDatabase sqldb, String predicate) 378 throws DatabaseException, SQLException 379 { 380 List<Lexeme> results = new ArrayList<Lexeme>(); 381 382 if (predicate == null) 383 { 384 predicate = ""; 385 } 346 386 347 387 try … … 353 393 stmt.setString(1, predicate); 354 394 ResultSet rs = sqldb.select(); 355 356 if (!rs.next()) 357 { 358 return null; 359 } 360 361 result = load(sqldb, rs); 395 396 while (rs.next()) 397 { 398 results.add(load(sqldb, rs)); 399 } 362 400 } 363 401 finally … … 366 404 } 367 405 368 return result ;406 return results.toArray(new Lexeme[results.size()]); 369 407 } 370 408 … … 433 471 Lexeme l = load(sqldb, rs); 434 472 435 if (l. id == 0)473 if (l.m_LexiconId == 0) 436 474 { 437 475 System.err.println("Bad ID 0 for "+l.desc); … … 439 477 } 440 478 441 m.put(l. id + "", l);479 m.put(l.m_LexiconId + "", l); 442 480 } 443 481 } … … 474 512 { 475 513 Change ch; 476 if ( id == 0)514 if (m_LexiconId == 0) 477 515 { 478 516 ch = m_sqldb.createChange(SqlChange.INSERT, "lexicon_entries", … … 483 521 { 484 522 ch = m_sqldb.createChange(SqlChange.UPDATE, "lexicon_entries", 485 "ID = " + id);523 "ID = " + m_LexiconId); 486 524 } 487 525 … … 531 569 532 570 ch.execute(); 533 if ( id == 0)534 { 535 id = ((SqlChange)ch).getInsertedRowId();571 if (m_LexiconId == 0) 572 { 573 m_LexiconId = ((SqlChange)ch).getInsertedRowId(); 536 574 } 537 575 } … … 539 577 public void delete() throws DatabaseException 540 578 { 541 if ( id == 0)579 if (m_LexiconId == 0) 542 580 { 543 581 throw new AssertionError("Cannot delete a Lexeme without an ID"); … … 545 583 546 584 Change ch = m_sqldb.createChange(SqlChange.DELETE, "lexicon_entries", 547 "ID = " + id);585 "ID = " + m_LexiconId); 548 586 ch.execute(); 549 587 } … … 606 644 protected void visit(Lexeme e, String parentPath) throws IOException 607 645 { 608 if (e. id == m_lsIdToFind)646 if (e.m_LexiconId == m_lsIdToFind) 609 647 { 610 648 m_found = e; … … 631 669 "FROM lexicon_variables "+ 632 670 "WHERE Lexeme_ID = ?"); 633 stmt.setInt(1, id);671 stmt.setInt(1, m_LexiconId); 634 672 ResultSet rs = sql.select(); 635 673 … … 639 677 rs.getString("Name"), 640 678 rs.getString("Value")); 641 v.lexemeId = id;679 v.lexemeId = m_LexiconId; 642 680 v.id = rs.getInt ("ID"); 643 681 … … 699 737 return logic; 700 738 } 739 740 public int getNumSyntacticArgs() 741 { 742 return m_NumSyntacticArgs; 743 } 701 744 } lex/trunk/src/com/qwirx/lex/morph/HebrewMorphemeGenerator.java
r370 r394 11 11 import jemdros.MatchedObject; 12 12 13 import com.qwirx.db.DatabaseException; 13 14 import com.qwirx.db.sql.SqlDatabase; 14 15 import com.qwirx.lex.lexicon.Lexeme; … … 146 147 public List<Morpheme> parse(MatchedObject word, boolean generateGloss, 147 148 String gloss, DatabaseTransliterator transliterator) 148 throws Exception149 throws DatabaseException 149 150 { 150 151 if (!word.getObjectTypeName().equals("word")) … … 160 161 String feature = i.next(); 161 162 162 int index = word.getEMdFValueIndex(feature); 163 if (index == -1) 164 { 165 throw new IllegalArgumentException("Word does not have " + 166 "required feature " + feature); 167 } 168 169 String value = word.getFeatureAsString(index); 170 if (value == null) 171 { 172 throw new IllegalArgumentException("Word does not have " + 173 "required feature " + feature); 163 int index; 164 String value; 165 166 try 167 { 168 index = word.getEMdFValueIndex(feature); 169 if (index == -1) 170 { 171 throw new IllegalArgumentException("Word does not have " + 172 "required feature " + feature); 173 } 174 175 value = word.getFeatureAsString(index); 176 if (value == null) 177 { 178 throw new IllegalArgumentException("Word does not have " + 179 "required feature " + feature); 180 } 181 } 182 catch (EmdrosException e) 183 { 184 throw new DatabaseException("Failed to retrieve feature '" + 185 feature + "' from word " + word.getID_D(), e); 174 186 } 175 187 … … 414 426 String feature, String gloss, String symbol, 415 427 boolean isLastMorpheme, boolean isGraphicalWordEnd) 416 throws EmdrosException417 428 { 418 429 results.add(new Morpheme(features.get(feature), gloss, symbol, lex/trunk/src/com/qwirx/lex/Search.java
r361 r394 160 160 Map<Integer,SetOfMonads> verseIdToMonadsMap = 161 161 new HashMap<Integer,SetOfMonads>(); 162 SetOfMonads allResultMonads = new SetOfMonads(); 162 163 163 164 for (TableIterator ti = table.iterator(); ti.hasNext();) … … 167 168 168 169 SetOfMonads som = verseIdToMonadsMap.get(new Integer(ID_D)); 170 169 171 if (som == null) 170 172 { … … 175 177 som.add(Integer.parseInt(tr.getColumn(2)), 176 178 Integer.parseInt(tr.getColumn(3))); 179 180 allResultMonads.unionWith(som); 181 } 182 183 String [] objectTypesToGet = new String [] {"book", "chapter", "verse"}; 184 185 for (String objectType : objectTypesToGet) 186 { 187 // TODO could get "verse_label" at the same time as "verse" 188 String verseContainerQuery = "GET OBJECTS HAVING MONADS IN " + 189 allResultMonads.toString() + " [" + objectType + "]"; 190 FlatSheaf flat = m_Emdros.getFlatSheaf(verseContainerQuery); 191 FlatStraw straw = flat.const_iterator().next(); 192 for (FlatStrawConstIterator fsci = straw.const_iterator(); 193 fsci.hasNext();) 194 { 195 MatchedObject object = fsci.next(); 196 // TODO fix another horribly slow algorithm 197 for (Iterator<ResultBase> i = resultBases.iterator(); i.hasNext();) 198 { 199 ResultBase base = i.next(); 200 if (base.monads.part_of(object.getMonads())) 201 { 202 if (base.url == null) 203 { 204 base.url = "clause.jsp?"; 205 } 206 else 207 { 208 base.url += "&"; 209 } 210 211 base.url += objectType + "=" + object.getID_D(); 212 } 213 } 214 } 177 215 } 178 216 … … 197 235 { 198 236 base.location = tr.getColumn(5); 199 base.url = "clause.jsp?book=" + tr.getColumn(2) + 200 "&chapter=" + tr.getColumn(3) + 201 "&verse=" + tr.getColumn(4) + 202 "&clause=" + base.clause.getID_D(); 203 } 204 } 205 } 206 237 } 238 } 239 } 240 241 for (Iterator<ResultBase> i = resultBases.iterator(); i.hasNext();) 242 { 243 ResultBase base = i.next(); 244 base.url += "&clause=" + base.clause.getID_D(); 245 } 246 207 247 { 208 248 String mql = "GET FEATURES predicate, logical_structure " + lex/trunk/src/com/qwirx/lex/translit/DatabaseTransliterator.java
r387 r394 15 15 import jemdros.EmdrosException; 16 16 import jemdros.MatchedObject; 17 import jemdros.StringListConstIterator;18 17 import jemdros.StringVector; 19 18 20 19 import org.apache.log4j.Logger; 21 20 21 import com.qwirx.db.DatabaseException; 22 22 import com.qwirx.db.sql.DbColumn; 23 23 import com.qwirx.db.sql.DbTable; … … 215 215 public String transliterate(List<Morpheme> morphemes, int index, 216 216 MatchedObject word) 217 throws EmdrosException217 throws DatabaseException 218 218 { 219 219 if (! word.getObjectTypeName().equals("word")) … … 228 228 { 229 229 String feature = features.get(i); 230 String value = word.getFeatureAsString(i); 230 String value; 231 232 try 233 { 234 value = word.getFeatureAsString(i); 235 } 236 catch (EmdrosException e) 237 { 238 throw new DatabaseException("Failed to get value for " + 239 "feature '" + feature + "'", e); 240 } 241 231 242 attributes.put("word_" + feature, value); 232 243 } lex/trunk/test/com/qwirx/lex/test/active/Clause.java
r377 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.util.HashMap; lex/trunk/test/com/qwirx/lex/test/active/ClauseControllerTest.java
r389 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.util.ArrayList; … … 17 17 import jemdros.StrawConstIterator; 18 18 19 import org.aptivate.web.controls.SelectBox; 19 20 import org.aptivate.web.utils.HtmlIterator; 21 import org.aptivate.web.utils.HtmlIterator.StartElementNode; 20 22 21 23 import com.meterware.httpunit.HttpUnitOptions; … … 26 28 import com.qwirx.db.sql.SqlChange; 27 29 import com.qwirx.lex.controller.ClauseController; 30 import com.qwirx.lex.controller.Navigator; 28 31 import com.qwirx.lex.controller.ClauseController.Cell; 29 32 import com.qwirx.lex.emdros.EmdrosChange; 33 import com.qwirx.lex.emdros.EmdrosDatabase; 34 import com.qwirx.lex.lexicon.Lexeme; 30 35 import com.qwirx.lex.parser.MorphEdge; 36 import com.qwirx.lex.test.base.LexTestBase; 37 import com.qwirx.lex.translit.DatabaseTransliterator; 31 38 32 39 public class ClauseControllerTest extends LexTestBase … … 72 79 } 73 80 81 private SetOfMonads getAllMonads() 82 throws Exception 83 { 84 return new SetOfMonads(getEmdros().getMinM(), getEmdros().getMaxM()); 85 } 86 74 87 public void testWivuGlossCell() throws Exception 75 88 { 76 ClauseController controller = new ClauseController(getEmdros(), 77 getSql(), 28740); 89 EmdrosDatabase emdros = getEmdros(); 90 91 ClauseController controller = new ClauseController(emdros, getSql(), 92 getAllMonads(), 28740); 78 93 79 94 MatchedObject word = getWord(27); // merahefet … … 131 146 String expected = "×֌ְךֵ×ש×ÖŽÖ×ת ×ÖŒÖž×šÖžÖ£× ×Ö±×Ö¹×ÖŽÖ×× ×ֵ֥ת ×ַש×֌֞×Ö·Ö×ÖŽ× ×Ö°×ֵ֥ת ×Öž×֞֜ךֶץ "; // Gen 1,1a 132 147 ClauseController controller = new ClauseController(getEmdros(), 133 getSql(), 28737);148 getSql(), getAllMonads(), 28737); 134 149 assertEquals(expected, controller.getHebrewText()); 135 150 } … … 138 153 throws Exception 139 154 { 140 return new ClauseController(getEmdros(), getSql(), clauseId); 155 return new ClauseController(getEmdros(), getSql(), getAllMonads(), 156 clauseId); 141 157 } 142 158 … … 269 285 i.assertSimple("td", clause.getEMdFValue("logical_structure").toString()); 270 286 i.assertStart("td"); 271 i.assertSimple("a", clauseToVerseMap.get(clause.getID_D())); 287 StartElementNode node = i.assertSimple("a", 288 clauseToVerseMap.get(clause.getID_D())); 289 290 if (clause.getID_D() == expectedClauseId) 291 { 292 node.assertAttribute("href", "clause.jsp" + 293 "?book=" + m_Location.get("book") + 294 "&chapter=" + m_Location.get("chapter") + 295 "&verse=" + m_Location.get("verse") + 296 "&clause=" + expectedClauseId); 297 } 298 272 299 i.assertEnd("td"); 273 300 i.assertEnd("tr"); … … 277 304 278 305 assertPageFooter(i); 306 } 307 308 private String getClauseUrl() 309 { 310 return "http://localhost:8080/lex/clause.jsp" + 311 "?book=" + m_Location.get("book") + 312 "&chapter=" + m_Location.get("chapter") + 313 "&verse=" + m_Location.get("verse") + 314 "&clause=" + m_Location.get("clause"); 279 315 } 280 316 … … 325 361 326 362 WebConversation loggedin = assertLogIn(); 327 loggedin.getResponse( 328 "http://localhost:8080/lex/clause.jsp" + 329 "?book=" + m_Location.get("book") + 330 "&chapter=" + m_Location.get("chapter") + 331 "&verse=" + m_Location.get("verse") + 332 "&clause=" + m_Location.get("clause") + 333 "&publish=Publish"); 363 loggedin.getResponse(getClauseUrl() + "&publish=Publish"); 334 364 335 365 clause = getClause(clauseId, new String[]{"published"}); … … 344 374 "published.jsp"); 345 375 assertPublishedPage(response, clauseId, true); 376 377 Navigator navigator = new Navigator(null, null, getEmdros(), 378 visible, new DatabaseTransliterator(getSql())); 379 navigator.setParamOverride("book", m_Location.get("book").toString()); 380 navigator.setParamOverride("chapter", m_Location.get("chapter").toString()); 381 navigator.setParamOverride("verse", m_Location.get("verse").toString()); 382 navigator.setParamOverride("clause", m_Location.get("clause").toString()); 383 384 navigator.getObjectNavigator("book", "book"); 385 assertTrue(clause.getMonads() + " is not part of " + 386 navigator.getFocusMonads(), 387 clause.getMonads().part_of(navigator.getFocusMonads())); 388 389 navigator.getObjectNavigator("chapter", "chapter"); 390 assertTrue(clause.getMonads() + " is not part of " + 391 navigator.getFocusMonads(), 392 clause.getMonads().part_of(navigator.getFocusMonads())); 393 394 navigator.getObjectNavigator("verse", 395 new String[]{"verse_label", "verse"}); 396 assertTrue(clause.getMonads() + " is not part of " + 397 navigator.getFocusMonads(), 398 clause.getMonads().part_of(navigator.getFocusMonads())); 399 400 navigator.getClauseNavigator(); 401 assertTrue(clause.getMonads() + " is not part of " + 402 navigator.getFocusMonads(), 403 clause.getMonads().part_of(navigator.getFocusMonads())); 404 } 405 406 public void testCreateLogicalStructure() throws Exception 407 { 408 final int clauseId = 28974; // GEN 03,05(f) 409 MatchedObject clause = getClause(clauseId, new String[]{}); 410 ClauseController clauseController = getController(clauseId); 411 412 WebConversation loggedin = assertLogIn(); 413 WebResponse resp = loggedin.getResponse(getClauseUrl()); 414 415 WebForm form = resp.getFormWithName("changels"); 416 form.setParameter("lsid", "add"); 417 418 int oldCount = getSql().getSingleInteger("SELECT COUNT(1) FROM " + 419 "lexicon_entries"); 420 resp = form.submit(); 421 assertEquals(oldCount + 1, getSql().getSingleInteger("SELECT COUNT(1) " + 422 "FROM lexicon_entries")); 423 int newLsId = getSql().getSingleInteger("SELECT MAX(ID) " + 424 "FROM lexicon_entries"); 425 assertEquals("http://localhost:8080/lex/lexicon.jsp?lsid=" + newLsId, 426 resp.getURL().toString()); 427 428 clause = getClause(clauseId, new String[]{"logical_struct_id"}); 429 assertEquals(newLsId, clause.getEMdFValue("logical_struct_id").getInt()); 430 431 Lexeme lexeme = Lexeme.load(getSql(), newLsId); 432 assertEquals(clauseController.getPredicateText(), lexeme.getPredicate()); 346 433 } 347 434 lex/trunk/test/com/qwirx/lex/test/active/CommaSeparatedValueParserTest.java
r176 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.io.InputStream; lex/trunk/test/com/qwirx/lex/test/active/EmdrosDatabaseTest.java
r379 r394 5 5 * Window - Preferences - Java - Code Style - Code Templates 6 6 */ 7 package com.qwirx.lex ;7 package com.qwirx.lex.test.active; 8 8 9 9 import java.sql.ResultSet; … … 37 37 import com.qwirx.db.sql.SqlChange; 38 38 import com.qwirx.lex.emdros.EmdrosChange; 39 import com.qwirx.lex.test.base.LexTestBase; 39 40 40 41 /** lex/trunk/test/com/qwirx/lex/test/active/GenExporterTest.java
r365 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import jemdros.MatchedObject; … … 14 14 import com.qwirx.crosswire.kjv.KJV; 15 15 import com.qwirx.db.sql.SqlDatabase; 16 import com.qwirx.lex.GenExporter; 17 import com.qwirx.lex.Lex; 16 18 import com.qwirx.lex.emdros.EmdrosDatabase; 17 19 import com.qwirx.lex.lexicon.Lexeme; lex/trunk/test/com/qwirx/lex/test/active/HebrewEnglishDatabaseTest.java
r189 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.util.List; lex/trunk/test/com/qwirx/lex/test/active/JswordExamples.java
r380 r394 20 20 * ID: $Id: APIExamples.java 1466 2007-07-02 02:48:09Z dmsmith $ 21 21 */ 22 package com.qwirx.lex ;22 package com.qwirx.lex.test.active; 23 23 24 24 import java.io.File; … … 68 68 69 69 import com.qwirx.crosswire.kjv.KJV; 70 import com.qwirx.lex.Lex; 70 71 import com.qwirx.lex.emdros.EmdrosDatabase; 71 72 import com.qwirx.lex.hebrew.HebrewEnglishDatabase; lex/trunk/test/com/qwirx/lex/test/active/LexemeTest.java
r325 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.util.ArrayList; … … 21 21 import com.qwirx.db.sql.SqlChange; 22 22 import com.qwirx.db.sql.SqlDatabase; 23 import com.qwirx.lex.Lex; 23 24 import com.qwirx.lex.emdros.EmdrosChange; 24 25 import com.qwirx.lex.emdros.EmdrosDatabase; … … 112 113 private void assertEquals(Lexeme a, Lexeme b) 113 114 { 114 assertEquals(a. id, b.id);115 assertEquals(a.getID(), b.getID()); 115 116 assertEquals(a.getLogicalStructure(), b.getLogicalStructure()); 116 117 assertEquals(a.isCaused(), b.isCaused()); … … 138 139 assertNotNull(expected); 139 140 140 String url = "http://localhost:8080/lex/l sedit.jsp?lsid=" +141 expected. id;141 String url = "http://localhost:8080/lex/lexicon.jsp?lsid=" + 142 expected.getID(); 142 143 WebConversation conv = new WebConversation(); 143 144 conv.getClientProperties().setAcceptGzip(false); … … 147 148 assertNotNull(form); 148 149 149 assertEquals(expected. id == 0 ? "" : expected.id+ "",150 assertEquals(expected.getID() == 0 ? "" : expected.getID() + "", 150 151 form.getParameterValue("lsid")); 151 152 checkCheckbox(form, "ls_caused", expected.isCaused()); … … 184 185 assertNotNull(lexeme); 185 186 186 String url = "http://localhost:8080/lex/l sedit.jsp?lsid=" +187 lexeme. id;187 String url = "http://localhost:8080/lex/lexicon.jsp?lsid=" + 188 lexeme.getID(); 188 189 WebConversation conv = new WebConversation(); 189 190 conv.getClientProperties().setAcceptGzip(false); … … 228 229 private Lexeme checkSaveAndLoad(Lexeme newValues) throws Exception 229 230 { 230 int id = newValues. id;231 int id = newValues.getID(); 231 232 assertFalse("new values should belong to an existing lexeme", id == 0); 232 233 233 234 Lexeme oldValues = Lexeme.load(sql, id); 234 assertEquals(id, oldValues. id);235 assertEquals(id, oldValues.getID()); 235 236 assertFalse("equals method did not detect change", 236 237 newValues.equals(oldValues)); 237 238 238 239 newValues.save(); 239 assertEquals(id, newValues. id);240 assertEquals(id, newValues.getID()); 240 241 241 242 Lexeme newCopy = Lexeme.load(sql, id); … … 260 261 { 261 262 Lexeme t = new Lexeme(sql); 262 assertEquals(0, t. id);263 assertEquals(0, t.getID()); 263 264 t.save(); 264 assertTrue(t. id!= 0);265 assertTrue(t.getID() != 0); 265 266 addedLexemes.add(t); 266 267 267 Lexeme t2 = Lexeme.load(sql, t. id);268 Lexeme t2 = Lexeme.load(sql, t.getID()); 268 269 assertEquals(t, t2); 269 270 assertTrue(t2.equals(t)); … … 501 502 new String[]{"YAT","IS","$LAYK"}, 502 503 new Object[][]{subjAttr, predAttr, objcAttr}, 503 new Integer(be. id));504 new Integer(be.getID())); 504 505 int clauseIdCatWantsMilk = addClause( 505 506 new String[]{"YAT","WANTS","MILK"}, 506 507 new Object[][]{subjAttr, predAttr, objcAttr}, 507 new Integer(want. id));508 new Integer(want.getID())); 508 509 int clauseIdCatDrinksMilk = addClause( 509 510 new String[]{"YAT","DRINKS","MILK"}, 510 511 new Object[][]{subjAttr, predAttr, objcAttr}, 511 new Integer(drink. id));512 new Integer(drink.getID())); 512 513 513 514 DatabaseTransliterator transliterator = new DatabaseTransliterator(sql); lex/trunk/test/com/qwirx/lex/test/active/NavigatorTest.java
r365 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import jemdros.SetOfMonads; 4 4 5 5 import com.qwirx.lex.controller.Navigator; 6 import com.qwirx.lex.test.base.LexTestBase; 6 7 import com.qwirx.lex.translit.DatabaseTransliterator; 7 8 lex/trunk/test/com/qwirx/lex/test/active/ParserTest.java
r331 r394 4 4 * Unit tests for the Lex parser code. 5 5 */ 6 package com.qwirx.lex ;6 package com.qwirx.lex.test.active; 7 7 8 8 import java.util.ArrayList; lex/trunk/test/com/qwirx/lex/test/active/SearchTest.java
r389 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.util.ArrayList; … … 9 9 import jemdros.SheafConstIterator; 10 10 import jemdros.Straw; 11 import j unit.framework.TestCase;11 import jemdros.StrawConstIterator; 12 12 13 13 import org.aptivate.web.utils.HtmlIterator; … … 16 16 import com.meterware.httpunit.WebConversation; 17 17 import com.meterware.httpunit.WebResponse; 18 import com.qwirx. db.sql.SqlDatabase;18 import com.qwirx.lex.Search; 19 19 import com.qwirx.lex.Search.SearchResult; 20 import com.qwirx.lex.emdros.EmdrosDatabase;21 20 import com.qwirx.lex.hebrew.HebrewConverter; 22 21 import com.qwirx.lex.morph.HebrewMorphemeGenerator; 22 import com.qwirx.lex.test.base.LexTestBase; 23 23 import com.qwirx.lex.translit.DatabaseTransliterator; 24 24 … … 50 50 search.setMaxResults(limit); 51 51 assertSearchResultsMatch(query, search, limit); 52 } 53 54 private MatchedObject getNestedObject(SheafConstIterator sci) 55 throws Exception 56 { 57 Straw objects = sci.next(); 58 StrawConstIterator objecti = objects.const_iterator(); 59 assertTrue(objecti.hasNext()); 60 MatchedObject object = objecti.next(); 61 assertFalse(objecti.hasNext()); 62 return object; 52 63 } 53 64 … … 78 89 int count = 0; 79 90 80 SheafConstIterator sci = sheaf.const_iterator(); 81 while (sci.hasNext()) 82 { 83 Straw straw = sci.next(); 84 85 count++; 86 if (count > limit) continue; 87 88 MatchedObject clause = straw.const_iterator().next(); 89 clauses.add(new Integer(clause.getID_D())); 91 { 92 SheafConstIterator sci = sheaf.const_iterator(); 93 while (sci.hasNext()) 94 { 95 Straw straw = sci.next(); 96 97 count++; 98 if (count > limit) continue; 99 100 MatchedObject clause = straw.const_iterator().next(); 101 clauses.add(new Integer(clause.getID_D())); 102 } 90 103 } 91 104 92 105 String mql = "SELECT ALL OBJECTS IN " + 93 106 getEmdros().getVisibleMonads().toString() + " " + 94 "WHERE " + 95 "[verse GET book, chapter, verse, verse_label " + 96 " [clause "; 107 "WHERE [book [chapter [verse GET verse_label [clause "; 97 108 98 109 if (clauses.size() == 0) … … 115 126 mql += "[word GET lexeme_wit, " + 116 127 new HebrewMorphemeGenerator().getRequiredFeaturesString(false) + 117 "]]] ";128 "]]]]]"; 118 129 119 130 sheaf = getEmdros().getSheaf(mql); 120 sci = sheaf.const_iterator();121 122 while (sci.hasNext())123 {124 Straw straw = sci.next(); 125 MatchedObject verse = straw.const_iterator().next();126 127 SheafConstIterator clause_iter =128 verse.getSheaf().const_iterator();131 132 for (SheafConstIterator bsci = sheaf.const_iterator(); bsci.hasNext();) 133 { 134 MatchedObject book = getNestedObject(bsci); 135 136 for (SheafConstIterator csci = book.getSheaf().const_iterator(); 137 csci.hasNext();) 138 { 139 MatchedObject chapter = getNestedObject(csci); 129 140 130 while (clause_iter.hasNext()) 131 { 132 MatchedObject clause = 133 clause_iter.next().const_iterator().next(); 134 135 String original = ""; 136 String translit = ""; 137 138 SheafConstIterator word_iter = 139 clause.getSheaf().const_iterator(); 141 for (SheafConstIterator vsci = chapter.getSheaf().const_iterator(); 142 vsci.hasNext();) 143 { 144 MatchedObject verse = getNestedObject(vsci); 140 145 141 while (word_iter.hasNext()) 142 { 143 MatchedObject word = 144 word_iter.next().const_iterator().next(); 146 for (SheafConstIterator 147 clsci = verse.getSheaf().const_iterator(); 148 clsci.hasNext();) 149 { 150 MatchedObject clause = getNestedObject(clsci); 145 151 146 String lexeme = word.getEMdFValue("lexeme_wit").getString(); 152 String original = ""; 153 String translit = ""; 154 155 SheafConstIterator word_iter = 156 clause.getSheaf().const_iterator(); 157 158 while (word_iter.hasNext()) 159 { 160 MatchedObject word = 161 word_iter.next().const_iterator().next(); 162 163 String lexeme = word.getEMdFValue("lexeme_wit").getString(); 164 165 boolean isMatch = lexeme.equals(query) || 166 lexeme.equals(query + "/") || 167 lexeme.equals(query + "["); 168 169 if (isMatch) 170 { 171 original += "<strong>"; 172 translit += "<strong>"; 173 } 174 175 original += HebrewConverter.wordHebrewToHtml (word, generator); 176 translit += HebrewConverter.wordTranslitToHtml(word, 177 generator, m_Transliterator); 178 179 if (isMatch) 180 { 181 original += "</strong>"; 182 translit += "</strong>"; 183 } 147 184 148 boolean isMatch = lexeme.equals(query) || 149 lexeme.equals(query + "/") || 150 lexeme.equals(query + "["); 151 152 if (isMatch) 153 { 154 original += "<strong>"; 155 translit += "<strong>"; 185 original += " "; 186 translit += " "; 187 } 188 189 assertTrue("Expected to find clause " + clause.getID_D() + 190 " but was missing", actualIterator.hasNext()); 191 SearchResult actual = actualIterator.next(); 192 assertEquals(verse.getEMdFValue("verse_label").getString(), 193 actual.getLocation()); 194 assertEquals(actual.getLocation(), 195 "<div class=\"hebrew\">" + original + "</div>\n" + 196 "<div class=\"translit\">" + translit + "</div>\n", 197 actual.getDescription()); 198 assertEquals(actual.getLocation(), "clause.jsp" + 199 "?book=" + book.getID_D() + 200 "&chapter=" + chapter.getID_D() + 201 "&verse=" + verse.getID_D() + 202 "&clause=" + clause.getID_D(), 203 actual.getLinkUrl() 204 ); 156 205 } 157 158 original += HebrewConverter.wordHebrewToHtml (word, generator);159 translit += HebrewConverter.wordTranslitToHtml(word,160 generator, m_Transliterator);161 162 if (isMatch)163 {164 original += "</strong>";165 translit += "</strong>";166 }167 168 original += " ";169 translit += " ";170 206 } 171 172 assertTrue("Expected to find clause " + clause.getID_D() +173 " but was missing", actualIterator.hasNext());174 SearchResult actual = actualIterator.next();175 assertEquals(verse.getEMdFValue("verse_label").getString(),176 actual.getLocation());177 assertEquals(actual.getLocation(),178 "<div class=\"hebrew\">" + original + "</div>\n" +179 "<div class=\"translit\">" + translit + "</div>\n",180 actual.getDescription());181 assertEquals(actual.getLocation(),182 "clause.jsp?book=" +183 getEmdros().getEnumConstNameFromValue("book_name_e",184 verse.getEMdFValue("book").getInt()) +185 "&chapter=" + verse.getEMdFValue("chapter") +186 "&verse=" + verse.getEMdFValue("verse") +187 "&clause=" + clause.getID_D(),188 actual.getLinkUrl()189 );190 207 } 191 192 assertEquals(count, search.getResultCount());193 208 } 194 209 195 210 assertFalse("Found " + (actualResults.size() - count + 1) + 196 211 " more results than expected", actualIterator.hasNext()); 212 assertEquals(count, search.getResultCount()); 197 213 } 198 214 lex/trunk/test/com/qwirx/lex/test/active/ThematicRelationTest.java
r86 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import junit.framework.TestCase; lex/trunk/test/com/qwirx/lex/test/active/TransliteratorTest.java
r381 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.sql.PreparedStatement; … … 19 19 20 20 import com.qwirx.db.sql.SqlDatabase; 21 import com.qwirx.lex.ImmutableMap; 22 import com.qwirx.lex.Lex; 21 23 import com.qwirx.lex.controller.ClauseController; 22 24 import com.qwirx.lex.emdros.EmdrosDatabase; … … 926 928 927 929 ClauseController controller = new ClauseController(m_Emdros, m_sql, 928 clauses.get(0).getId());930 m_Emdros.getVisibleMonads(), clauses.get(0).getId()); 929 931 MatchedObject clause = controller.getClause(); 930 932 assertEquals(clauses.get(0).getId(), clause.getID_D()); … … 991 993 992 994 ClauseController controller = new ClauseController(m_Emdros, m_sql, 993 clauses.get(0).getId());995 m_Emdros.getVisibleMonads(), clauses.get(0).getId()); 994 996 MatchedObject clause = controller.getClause(); 995 997 assertEquals(clauses.get(0).getId(), clause.getID_D()); … … 1020 1022 1021 1023 ClauseController controller = new ClauseController(m_Emdros, m_sql, 1022 clauses.get(0).getId());1024 m_Emdros.getVisibleMonads(), clauses.get(0).getId()); 1023 1025 1024 1026 for (int j = 0; j < 1000; j++) lex/trunk/test/com/qwirx/lex/test/active/TreeDrawingTest.java
r132 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.awt.Font; lex/trunk/test/com/qwirx/lex/test/active/TreeNodeTests.java
r306 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import java.util.ArrayList; … … 7 7 import java.util.List; 8 8 import java.util.ListIterator; 9 10 import com.qwirx.lex.TreeNode; 9 11 10 12 import junit.framework.TestCase; lex/trunk/test/com/qwirx/lex/test/active/WivuLexiconTest.java
r314 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import com.qwirx.lex.hebrew.WivuLexicon; lex/trunk/test/com/qwirx/lex/test/active/WordnetTest.java
r26 r394 1 package com.qwirx.lex ;1 package com.qwirx.lex.test.active; 2 2 3 3 import junit.framework.TestCase;
