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