From bb28c0935d5f9ea8c292270e1bf1554fd371985f Mon Sep 17 00:00:00 2001 From: Philipp Spohr <spohr.philipp@web.de> Date: Sat, 9 Sep 2017 11:32:09 +0200 Subject: [PATCH] Sort clusters in solution by size --- .../swing/components/SolutionTab.java | 45 ++++++++++++------ thesis/tex/Chapter/alg_overview.tex | 2 +- thesis/tex/Thesis.pdf | Bin 133534 -> 133572 bytes thesis/tex/Thesis.tex | 1 + 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/SolutionTab.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/SolutionTab.java index ecc1bd9..a017efc 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/SolutionTab.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/SolutionTab.java @@ -1,16 +1,16 @@ /******************************************************************************* * Copyright (C) 2017 Philipp Spohr - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -24,8 +24,8 @@ package de.hhu.ba.yoshikoWrapper.swing.components; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.Comparator; -import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JLabel; @@ -39,33 +39,50 @@ import de.hhu.ba.yoshikoWrapper.swing.SwingUtil; @SuppressWarnings("serial") public class SolutionTab extends JPanel { - + private final JScrollPane scrollPane; private final JPanel scrollPaneContent; private final JLabel clusterCount; private final JButton createMetaGraph; - + private final YoshikoSolution solution; - + public SolutionTab(YoshikoSolution s) { - + this.solution = s; - + this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); //init swing components scrollPaneContent = new JPanel(); scrollPaneContent.setLayout(new BoxLayout(scrollPaneContent,BoxLayout.Y_AXIS)); + + //Sort cluster by size, descending + solution.cluster.sort(new Comparator<YoshikoCluster>() { + + @Override + public int compare(YoshikoCluster o1, YoshikoCluster o2) { + if (o1.getSize() == o2.getSize()) { + return 0; + } + else if(o1.getSize() < o2.getSize()) { + return 1; + } + return -1; + } + + }); + for (YoshikoCluster c: solution.cluster) { ClusterView clusterView = new ClusterView(c); scrollPaneContent.add(clusterView); - scrollPaneContent.add(Box.createVerticalStrut(8)); } + scrollPane = new JScrollPane(scrollPaneContent); scrollPane.setPreferredSize(new Dimension(150,400)); - + clusterCount = new JLabel(LocalizationManager.get("clusterFound")+" "+s.cluster.size()); - + createMetaGraph = new JButton(LocalizationManager.get("createMetaGraph")); createMetaGraph.addActionListener(new ActionListener() { @@ -73,9 +90,9 @@ public class SolutionTab extends JPanel { public void actionPerformed(ActionEvent e) { solution.exportMetaGraph(); } - + }); SwingUtil.addAll(this,clusterCount,scrollPane,createMetaGraph); } - + } diff --git a/thesis/tex/Chapter/alg_overview.tex b/thesis/tex/Chapter/alg_overview.tex index 9e9959a..93e0b8f 100644 --- a/thesis/tex/Chapter/alg_overview.tex +++ b/thesis/tex/Chapter/alg_overview.tex @@ -2,7 +2,7 @@ text width=5em, text centered, rounded corners, minimum height=4em] \tikzstyle{line} = [draw, -latex'] -\begin{figure} +\begin{figure}[h] \begin{tikzpicture}[node distance = 1cm] \node [block] (datamodel) {Data Modeling}; diff --git a/thesis/tex/Thesis.pdf b/thesis/tex/Thesis.pdf index 8b7d4e4b7f208df91a6ace87dd5a70902e74b0ed..f9c75fd1151540217f7d930dd18c14850a899a3c 100644 GIT binary patch delta 8753 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 bT#{H+Qc;we#${-1Y+z)}rK;-c@5TiHZ-UO< delta 8701 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 N!kkN0)z#mP3jiBylUo1) diff --git a/thesis/tex/Thesis.tex b/thesis/tex/Thesis.tex index dab8775..acc9667 100644 --- a/thesis/tex/Thesis.tex +++ b/thesis/tex/Thesis.tex @@ -10,6 +10,7 @@ \usepackage{graphicx} \usepackage{tikz} \usepackage{verbatim} +\usepackage{float} \usetikzlibrary{shapes,arrows} \usetikzlibrary{positioning} -- GitLab