/
1674.html
249 lines (223 loc) · 8.12 KB
/
1674.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- See: http://trac.edgewall.org/wiki/TracInterfaceCustomization -->
<head>
<title>
#1674 (Drag And Drop should score translations)
– ImageJ
</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="trac.css" type="text/css" /><link rel="stylesheet" href="ticket.css" type="text/css" /><link rel="stylesheet" href="tracvote.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="main">
<div id="notice" style="width: 58em; max-width: 100%; margin-left: auto; margin-right: auto; border: 1px solid black; margin-bottom: 2em">
<table>
<tr>
<td style="font-size: 72px; color: firebrick; padding: 0 10px 0 10px">⚠</td>
<td>
<p style="margin: 0.4em">
NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.
</p>
<p style="margin: 0.4em">
The ImageJ project now
<a href="https://imagej.net/Issues">uses GitHub Issues</a> for issue tracking.
</p>
<p style="margin: 0.4em">
Please
<a href="https://github.com/imagej/imagej/issues/new">file all new issues</a>
there.
</p>
</td>
</tr>
</table>
</div>
<div id="content" class="ticket">
<h1 id="trac-ticket-title">
<a href="1674.html">Ticket #1674</a>
<span class="status">(closed defect: wontfix)</span>
</h1>
<div id="ticket">
<div class="date">
<p>Opened 2013-03-14T10:00:22-05:00</p>
<p>Last modified 2014-05-06T10:08:51-05:00</p>
</div>
<h2 class="summary searchable">Drag And Drop should score translations</h2>
<table class="properties">
<tr>
<th id="h_reporter">Reported by:</th>
<td headers="h_reporter" class="searchable">
bdezonia
</td>
<th id="h_owner">Owned by:</th>
<td headers="h_owner">
bdezonia
</td>
</tr>
<tr>
<th id="h_priority">
Priority:
</th>
<td headers="h_priority">
major
</td>
<th id="h_milestone">
Milestone:
</th>
<td headers="h_milestone">
imagej2-b8-analysis
</td>
</tr><tr>
<th id="h_component">
Component:
</th>
<td headers="h_component">
Core
</td>
<th id="h_version">
Version:
</th>
<td headers="h_version">
</td>
</tr><tr>
<th id="h_severity">
Severity:
</th>
<td headers="h_severity">
serious
</td>
<th id="h_keywords">
Keywords:
</th>
<td headers="h_keywords" class="searchable">
</td>
</tr><tr>
<th id="h_cc">
Cc:
</th>
<td headers="h_cc" class="searchable">
</td>
<th id="h_blockedby">
Blocked By:
</th>
<td headers="h_blockedby">
</td>
</tr><tr>
<th id="h_blocking">
Blocking:
</th>
<td headers="h_blocking">
<a class="closed" href="1676.html" title="Improve drag and drop">#1676</a>
</td>
<th>
</th>
<td>
</td>
</tr>
</table>
<div class="description">
<h3 id="comment:description">
Description
</h3>
<div class="searchable">
<p>
On the drag-and-drop branch there is code for supporting drag and drop in a platform independent fashion. One limitation is that it translates data using the first compatible translation it finds. These translations are found by searching the DragAndDropHandlers in their priority order. However as 3rd parties add drag and drop support this priority order may get in the way.<br />
</p>
<p>
An example where this is tricky is if one tries to past spreadsheet cell data (for instance from NeoOffice). In the future we might have a translator that translates html tables of numbers to a results table. This pasted data says it can be text/html table or it can be text/plain. Depending upon the priority of the handlers one will be done over the other. With more handlers this could get unwieldy.<br />
</p>
<p>
Ideally we would have each DragAndDropHandler score how well it supports a mime type. Then we choose the best translator (DragAndDropHandler reference and mime-type) from all installed translators. This would allow 3rd parties to override anything they wanted without have to jockey for position in the priority queue.<br />
</p>
</div>
</div>
</div>
<div>
<h2 class="foldable">Change History</h2>
<div id="changelog">
<div class="change" id="trac-change-1">
<h3 class="change">
<span class="threading">
<span id="comment:1" class="cnum">
<a href="#comment:1">comment:1</a>
</span>
</span>
Changed 2013-03-14T10:21:28-05:00 by bdezonia
</h3>
<ul class="changes">
<li>
<strong>Blocking</strong>
<em>1676</em> added; <em>860</em> removed
</li><li>
<strong>Milestone</strong>
changed from <em>imagej2-unscheduled</em> to <em>imagej2-b8-analysis</em>
</li>
</ul>
<div class="comment searchable">
</div>
</div>
<div class="change" id="trac-change-2">
<h3 class="change">
<span class="threading">
<span id="comment:2" class="cnum">
<a href="#comment:2">comment:2</a>
</span>
</span>
Changed 2013-03-14T10:24:05-05:00 by bdezonia
</h3>
<div class="comment searchable">
<p>
ctreuden made the comment that we should look at Java's DataFlavor class, understand its complexity, and apply such knowledge to our design.<br />
</p>
</div>
</div>
<div class="change" id="trac-change-3">
<h3 class="change">
<span class="threading">
<span id="comment:3" class="cnum">
<a href="#comment:3">comment:3</a>
</span>
</span>
Changed 2013-06-07T15:08:44-05:00 by curtis
</h3>
<div class="comment searchable">
<p>
In your example above, couldn't you just split the NeoOfficeSpreadsheetHandler into two separate handlers, one for <tt>text/html</tt> and one for <tt>text/plain</tt>, if those two things really need to be different priorities? Of course, they could share a common base class to keep the code DRY.<br />
</p>
</div>
<div class="trac-lastedit ">
Last edited 2013-06-07T15:08:59-05:00
by curtis
</div>
</div>
<div class="change" id="trac-change-4">
<h3 class="change">
<span class="threading">
<span id="comment:4" class="cnum">
<a href="#comment:4">comment:4</a>
</span>
</span>
Changed 2014-05-06T10:08:51-05:00 by curtis
</h3>
<ul class="changes">
<li>
<strong>Status</strong>
changed from <em>new</em> to <em>closed</em>
</li><li>
<strong>Resolution</strong>
set to <em>wontfix</em>
</li>
</ul>
<div class="comment searchable">
<p>
It is always possible to simulate a "scoring" mechanic by splitting a handler into one handler per unique "score" it might assign. While there may be use cases where using multiple handlers in such a fashion becomes unwieldy, let's wait until we come across such a case before complexifying the drag and drop design.<br />
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>