~codescore-dev/codescore/version-1.0

« back to all changes in this revision

Viewing changes to doc/java_doc/src-html/net/codescore/ui/probrepo/TagCloud.html

  • Committer: Adam Cornett
  • Date: 2008-05-16 02:53:17 UTC
  • mfrom: (65.1.52 codescore)
  • Revision ID: adam.cornett@gmail.com-20080516025317-douek1kxjabvb3wu
Merged changes from my branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<HTML>
 
2
<BODY BGCOLOR="white">
 
3
<PRE>
 
4
<FONT color="green">001</FONT>    /*<a name="line.1"></a>
 
5
<FONT color="green">002</FONT>     * Copyright (C) 2008 Adam Cornett This program is free software; you can<a name="line.2"></a>
 
6
<FONT color="green">003</FONT>     * redistribute it and/or modify it under the terms of the GNU General Public<a name="line.3"></a>
 
7
<FONT color="green">004</FONT>     * License as published by the Free Software Foundation; either version 3 of the<a name="line.4"></a>
 
8
<FONT color="green">005</FONT>     * License, or (at your option) any later version. This program is distributed<a name="line.5"></a>
 
9
<FONT color="green">006</FONT>     * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even<a name="line.6"></a>
 
10
<FONT color="green">007</FONT>     * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<a name="line.7"></a>
 
11
<FONT color="green">008</FONT>     * See the GNU General Public License for more details. You should have received<a name="line.8"></a>
 
12
<FONT color="green">009</FONT>     * a copy of the GNU General Public License along with this program; if not, see<a name="line.9"></a>
 
13
<FONT color="green">010</FONT>     * &lt;http://www.gnu.org/licenses&gt;.<a name="line.10"></a>
 
14
<FONT color="green">011</FONT>     */<a name="line.11"></a>
 
15
<FONT color="green">012</FONT>    <a name="line.12"></a>
 
16
<FONT color="green">013</FONT>    package net.codescore.ui.probrepo;<a name="line.13"></a>
 
17
<FONT color="green">014</FONT>    <a name="line.14"></a>
 
18
<FONT color="green">015</FONT>    import java.util.ArrayList;<a name="line.15"></a>
 
19
<FONT color="green">016</FONT>    import java.util.HashMap;<a name="line.16"></a>
 
20
<FONT color="green">017</FONT>    import java.util.List;<a name="line.17"></a>
 
21
<FONT color="green">018</FONT>    <a name="line.18"></a>
 
22
<FONT color="green">019</FONT>    import org.zkoss.zul.Window;<a name="line.19"></a>
 
23
<FONT color="green">020</FONT>    <a name="line.20"></a>
 
24
<FONT color="green">021</FONT>    import net.codescore.dbo.Tag;<a name="line.21"></a>
 
25
<FONT color="green">022</FONT>    import net.codescore.managers.ProblemManager;<a name="line.22"></a>
 
26
<FONT color="green">023</FONT>    <a name="line.23"></a>
 
27
<FONT color="green">024</FONT>    public class TagCloud extends Window {<a name="line.24"></a>
 
28
<FONT color="green">025</FONT>            public List&lt;TagC&gt; tagList = null;<a name="line.25"></a>
 
29
<FONT color="green">026</FONT>            private int minW = Integer.MAX_VALUE, maxW = Integer.MIN_VALUE,<a name="line.26"></a>
 
30
<FONT color="green">027</FONT>                    fontMin = 10, fontMax = 20;<a name="line.27"></a>
 
31
<FONT color="green">028</FONT>            private List&lt;Tag&gt; tags = ProblemManager.getAllTags();<a name="line.28"></a>
 
32
<FONT color="green">029</FONT>    <a name="line.29"></a>
 
33
<FONT color="green">030</FONT>            private HashMap&lt;Tag, Integer&gt; weights = new HashMap&lt;Tag, Integer&gt;();<a name="line.30"></a>
 
34
<FONT color="green">031</FONT>    <a name="line.31"></a>
 
35
<FONT color="green">032</FONT>            public TagCloud() {<a name="line.32"></a>
 
36
<FONT color="green">033</FONT>                    initWeight();<a name="line.33"></a>
 
37
<FONT color="green">034</FONT>            }<a name="line.34"></a>
 
38
<FONT color="green">035</FONT>    <a name="line.35"></a>
 
39
<FONT color="green">036</FONT>            public int getFontSize(int weight) {<a name="line.36"></a>
 
40
<FONT color="green">037</FONT>                    double top = (weight - minW) * (fontMax - fontMin);<a name="line.37"></a>
 
41
<FONT color="green">038</FONT>                    double bottom = (maxW - minW);<a name="line.38"></a>
 
42
<FONT color="green">039</FONT>                    int fsize = (int) ((top / bottom) + .5) + fontMin;<a name="line.39"></a>
 
43
<FONT color="green">040</FONT>                    return fsize;<a name="line.40"></a>
 
44
<FONT color="green">041</FONT>            }<a name="line.41"></a>
 
45
<FONT color="green">042</FONT>    <a name="line.42"></a>
 
46
<FONT color="green">043</FONT>            public int getFontSize(Tag t) {<a name="line.43"></a>
 
47
<FONT color="green">044</FONT>                    return getFontSize(weights.get(t));<a name="line.44"></a>
 
48
<FONT color="green">045</FONT>            }<a name="line.45"></a>
 
49
<FONT color="green">046</FONT>    <a name="line.46"></a>
 
50
<FONT color="green">047</FONT>            public List&lt;TagC&gt; getTags() {<a name="line.47"></a>
 
51
<FONT color="green">048</FONT>                    if (tagList == null) {<a name="line.48"></a>
 
52
<FONT color="green">049</FONT>                            tagList = new ArrayList&lt;TagC&gt;(tags.size());<a name="line.49"></a>
 
53
<FONT color="green">050</FONT>                            for (Tag t : tags)<a name="line.50"></a>
 
54
<FONT color="green">051</FONT>                                    tagList.add(new TagC(this, t));<a name="line.51"></a>
 
55
<FONT color="green">052</FONT>                    }<a name="line.52"></a>
 
56
<FONT color="green">053</FONT>                    return tagList;<a name="line.53"></a>
 
57
<FONT color="green">054</FONT>            }<a name="line.54"></a>
 
58
<FONT color="green">055</FONT>    <a name="line.55"></a>
 
59
<FONT color="green">056</FONT>            public void initWeight() {<a name="line.56"></a>
 
60
<FONT color="green">057</FONT>                    for (Tag t : tags) {<a name="line.57"></a>
 
61
<FONT color="green">058</FONT>                            int w = t.getProblems().size();<a name="line.58"></a>
 
62
<FONT color="green">059</FONT>                            weights.put(t, w);<a name="line.59"></a>
 
63
<FONT color="green">060</FONT>                            if (w &lt; minW)<a name="line.60"></a>
 
64
<FONT color="green">061</FONT>                                    minW = w;<a name="line.61"></a>
 
65
<FONT color="green">062</FONT>                            if (w &gt; maxW)<a name="line.62"></a>
 
66
<FONT color="green">063</FONT>                                    maxW = w;<a name="line.63"></a>
 
67
<FONT color="green">064</FONT>                    }<a name="line.64"></a>
 
68
<FONT color="green">065</FONT>            }<a name="line.65"></a>
 
69
<FONT color="green">066</FONT>    <a name="line.66"></a>
 
70
<FONT color="green">067</FONT>            public void onCreate() {<a name="line.67"></a>
 
71
<FONT color="green">068</FONT>                    setWidth("100%");<a name="line.68"></a>
 
72
<FONT color="green">069</FONT>            }<a name="line.69"></a>
 
73
<FONT color="green">070</FONT>    <a name="line.70"></a>
 
74
<FONT color="green">071</FONT>            public void setFontMax(int max) {<a name="line.71"></a>
 
75
<FONT color="green">072</FONT>                    fontMax = max;<a name="line.72"></a>
 
76
<FONT color="green">073</FONT>            }<a name="line.73"></a>
 
77
<FONT color="green">074</FONT>    <a name="line.74"></a>
 
78
<FONT color="green">075</FONT>            public void setFontMin(int min) {<a name="line.75"></a>
 
79
<FONT color="green">076</FONT>                    fontMin = min;<a name="line.76"></a>
 
80
<FONT color="green">077</FONT>            }<a name="line.77"></a>
 
81
<FONT color="green">078</FONT>    }<a name="line.78"></a>
 
82
 
 
83
 
 
84
 
 
85
 
 
86
 
 
87
 
 
88
 
 
89
 
 
90
 
 
91
 
 
92
 
 
93
 
 
94
 
 
95
 
 
96
 
 
97
 
 
98
 
 
99
 
 
100
 
 
101
 
 
102
 
 
103
 
 
104
 
 
105
 
 
106
 
 
107
 
 
108
 
 
109
 
 
110
 
 
111
 
 
112
 
 
113
 
 
114
 
 
115
 
 
116
 
 
117
 
 
118
 
 
119
 
 
120
 
 
121
 
 
122
 
 
123
 
 
124
 
 
125
 
 
126
 
 
127
 
 
128
 
 
129
 
 
130
 
 
131
 
 
132
 
 
133
 
 
134
 
 
135
 
 
136
 
 
137
 
 
138
 
 
139
 
 
140
 
 
141
 
 
142
</PRE>
 
143
</BODY>
 
144
</HTML>