diff --git a/TermoPL-user-manual.pdf b/TermoPL-user-manual.pdf index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644 Binary files a/TermoPL-user-manual.pdf and b/TermoPL-user-manual.pdf differ diff --git a/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf b/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644 Binary files a/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf and b/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf differ diff --git a/TermoPL_Mac_OS_X/TermoPL.jar b/TermoPL_Mac_OS_X/TermoPL.jar new file mode 100644 index 0000000000000000000000000000000000000000..1186f8c02b233fbbf20dfcfe0194de3f2fc7d259 Binary files /dev/null and b/TermoPL_Mac_OS_X/TermoPL.jar differ diff --git a/TermoPL_Ubuntu/TermoPL-user-manual.pdf b/TermoPL_Ubuntu/TermoPL-user-manual.pdf index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644 Binary files a/TermoPL_Ubuntu/TermoPL-user-manual.pdf and b/TermoPL_Ubuntu/TermoPL-user-manual.pdf differ diff --git a/TermoPL_Ubuntu/TermoPL.jar b/TermoPL_Ubuntu/TermoPL.jar new file mode 100644 index 0000000000000000000000000000000000000000..1186f8c02b233fbbf20dfcfe0194de3f2fc7d259 Binary files /dev/null and b/TermoPL_Ubuntu/TermoPL.jar differ diff --git a/TermoPL_Win64/TermoPL-user-manual.pdf b/TermoPL_Win64/TermoPL-user-manual.pdf index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644 Binary files a/TermoPL_Win64/TermoPL-user-manual.pdf and b/TermoPL_Win64/TermoPL-user-manual.pdf differ diff --git a/TermoPL_Win64/TermoPL.jar b/TermoPL_Win64/TermoPL.jar new file mode 100644 index 0000000000000000000000000000000000000000..1186f8c02b233fbbf20dfcfe0194de3f2fc7d259 Binary files /dev/null and b/TermoPL_Win64/TermoPL.jar differ diff --git a/compile.sh b/compile.sh index 0ab97b0c5509913980925a78def8adf50ef589fa..352ca9ad78b061d4acacda780b14c7403574a4eb 100755 --- a/compile.sh +++ b/compile.sh @@ -11,10 +11,10 @@ cd .. cp TermoPL.jar ./TermoPL_Mac_OS_X cp TermoPL.jar ./TermoPL_Ubuntu cp TermoPL.jar ./TermoPL_Win64 -rm TermoPL.jar zip -r ./packages/TermoPL_Mac_OS_X.zip TermoPL_Mac_OS_X zip -r ./packages/TermoPL_Ubuntu.zip TermoPL_Ubuntu zip -r ./packages/TermoPL_Win64.zip TermoPL_Win64 +rm TermoPL.jar rm -r termopl rm -r pl rm -r quitaboutpreferenceshandler diff --git a/src/termopl/About.java b/src/termopl/About.java index b2eca0bf4e4e7a22e509466024796f9c1d998d0c..ecc6902ffa96aaa8b8fd57409068b41c8b5b823e 100755 --- a/src/termopl/About.java +++ b/src/termopl/About.java @@ -57,7 +57,7 @@ public class About extends JPanel vbox.add(Box.createVerticalStrut(16)); hbox = Box.createHorizontalBox(); hbox.add(Box.createHorizontalGlue()); - label = new JLabel("Version 6.0.4"); + label = new JLabel("Version 6.0.5"); label.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12)); hbox.add(label); hbox.add(Box.createHorizontalGlue()); diff --git a/src/termopl/GroupsView.java b/src/termopl/GroupsView.java index 5329763a4c4657872459331bdb140b7683d58e84..d62c1a2662946f85b60da09d449dd1cac470da3b 100755 --- a/src/termopl/GroupsView.java +++ b/src/termopl/GroupsView.java @@ -15,6 +15,8 @@ public class GroupsView extends JPanel private static final int CHILD = 2; private TermoPLDocument doc; + private TermComparator comp; + private SimpleComparator simpleComp; private JSplitPane splitPane; private HierarchyPanel hierarchyPanel; private RelatedPanel relatedPanel; @@ -24,6 +26,8 @@ public class GroupsView extends JPanel public GroupsView(TermoPLDocument document) { doc = document; + comp = new TermComparator(); + simpleComp = new SimpleComparator(); setLayout(new BorderLayout()); arrangeComponents(); @@ -95,6 +99,12 @@ public class GroupsView extends JPanel else infoPanel.setWarning("Term is not selected."); } + public void sort(LinkedList<String> terms, boolean simple) + { + if (simple) Collections.sort(terms, simpleComp); + else Collections.sort(terms, comp); + } + public void reset() { setData(null); @@ -163,6 +173,7 @@ public class GroupsView extends JPanel int x, y, dy; add(node); + if (parents != null) sort(parents, false); dim = node.getPreferredSize(); node.setBounds(16, offsetY, dim.width, dim.height); dy = dim.height; @@ -250,12 +261,14 @@ public class GroupsView extends JPanel if (maxWidth < x) maxWidth = x; } offsetY = node.getY() + dy + 8; - if (children != null) + if (children != null) { + sort(children, false); for (String t : children) { TermEx term = (TermEx)doc.getTermMap().get(t); arrangeNodes(node, term); } + } } public void calcSize() @@ -296,12 +309,27 @@ public class GroupsView extends JPanel public void arrangeComponents() { - addLabel(term, TermoPL.preferences.boldFont, type); LinkedList<String> equiv = term.getEquivalentTerms(); + String skipID = null; + boolean addType = true; + if (type == ROOT) { + addLabel(term, TermoPL.preferences.boldFont, type); + skipID = term.id; + addType = false; + } + else if (equiv == null) addLabel(term, TermoPL.preferences.boldFont, type); if (equiv != null) { - for (String e : equiv) - if (e != term.id) addLabel((TermEx)doc.getTermMap().get(e)); + sort(equiv, true); + for (String e : equiv) { + if (e != skipID) { + if (addType) { + addLabel((TermEx)doc.getTermMap().get(e), TermoPL.preferences.boldFont, type); + addType = false; + } + else addLabel((TermEx)doc.getTermMap().get(e)); + } + } } } @@ -747,5 +775,54 @@ public class GroupsView extends JPanel } } + + private class SimpleComparator implements Comparator<String> + { + + public int compare(String s1, String s2) + { + double v1 = doc.getTermMap().get(s1).cvalue; + double v2 = doc.getTermMap().get(s2).cvalue; + + if (v1 < v2) return 1; + if (v1 > v2) return -1; + return 0; + } + + } + private class TermComparator implements Comparator<String> + { + + public int compare(String s1, String s2) + { + TermEx t1 = (TermEx)doc.getTermMap().get(s1); + TermEx t2 = (TermEx)doc.getTermMap().get(s2); + double v1, v2; + + if (t1.getEquivalentTerms() == null) v1 = t1.cvalue; + else { + v1 = 0.0; + for (String s : t1.getEquivalentTerms()) { + TermEx t = (TermEx)doc.getTermMap().get(s); + + if (t.cvalue > v1) v1 = t.cvalue; + } + } + if (t2.getEquivalentTerms() == null) v2 = t2.cvalue; + else { + v2 = 0.0; + for (String s : t2.getEquivalentTerms()) { + TermEx t = (TermEx)doc.getTermMap().get(s); + + if (t.cvalue > v2) v2 = t.cvalue; + } + } + if (v1 < v2) return 1; + if (v1 > v2) return -1; + return 0; + } + + } + } diff --git a/src/termopl/TermEx.java b/src/termopl/TermEx.java index 304540b76104af15d926fb96415a01f8fb696196..79732befe9db5dadeb2689005bf3f4d5bd3750f0 100755 --- a/src/termopl/TermEx.java +++ b/src/termopl/TermEx.java @@ -177,22 +177,36 @@ public class TermEx extends Term public LinkedList<String> collectChildren(HashMap<String, Term> termMap) { - if (equivTerms == null) return children; + LinkedList<String> allChildren = new LinkedList<String>(); + + if (equivTerms == null) allChildren = children; else { - LinkedList<String> allChildren = new LinkedList<String>(); - + allChildren = new LinkedList<String>(); for (String e : equivTerms) { TermEx t = (TermEx)termMap.get(e); LinkedList<String> clist = t.getChildren(); if (clist != null) { for (String c : clist) { - if (!allChildren.contains(c)) allChildren.add(c); + TermEx tc = (TermEx)termMap.get(c); + + if (tc.equivTerms != null) { + boolean found = false; + + for (String ec : tc.equivTerms) { + if (allChildren.contains(ec)) { + found = true; + break; + } + } + if (!found) allChildren.add(c); + } + else if (!allChildren.contains(c)) allChildren.add(c); } } } - return allChildren; } + return allChildren; } public LinkedList<Pair<String, LinkedList<WordReplacement>>> collectRelated(HashMap<String, Term> termMap) diff --git a/src/termopl/WordNet.java b/src/termopl/WordNet.java index ffa646fa1461279e040f6539fb314c3cec35e572..daec689ae83e545059caa2140d9569649a72a06d 100755 --- a/src/termopl/WordNet.java +++ b/src/termopl/WordNet.java @@ -434,7 +434,7 @@ public class WordNet case 141: case 142: case 169: - case 244: return "interparadigmatic synonymy"; + case 244: return "inter-paradigmatic synonymy"; default: return "?"; } }