1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.theplugin.idea.jira;
18
19 import com.atlassian.theplugin.idea.ProgressAnimationProvider;
20 import com.atlassian.theplugin.idea.jira.table.JIRAConstantListRenderer;
21 import com.atlassian.theplugin.idea.jira.table.JIRAQueryFragmentListRenderer;
22 import com.atlassian.theplugin.idea.ui.CollapsiblePanel;
23 import com.atlassian.theplugin.jira.JIRAServer;
24 import com.atlassian.theplugin.jira.api.JIRAAssigneeBean;
25 import com.atlassian.theplugin.jira.api.JIRAProjectBean;
26 import com.atlassian.theplugin.jira.api.JIRAQueryFragment;
27 import com.atlassian.theplugin.jira.api.JIRAReporterBean;
28 import com.intellij.openapi.util.IconLoader;
29 import com.intellij.uiDesigner.core.Spacer;
30 import com.jgoodies.forms.layout.CellConstraints;
31 import com.jgoodies.forms.layout.FormLayout;
32
33 import javax.swing.*;
34 import javax.swing.event.ListSelectionEvent;
35 import javax.swing.event.ListSelectionListener;
36 import java.awt.*;
37 import java.util.ArrayList;
38 import java.util.List;
39
40
41 public class JIRAIssueFilterPanel extends JPanel {
42 private JList projectList;
43 private JList issueTypeList;
44 private JList fixForList;
45 private JList affectsVersionsList;
46 private JComboBox reporterComboBox;
47 private JComboBox assigneeComboBox;
48 private JList resolutionsList;
49 private JList prioritiesList;
50 private JList statusList;
51 private JPanel rootPanel;
52 private JScrollPane prioritiesScrollPane;
53 private JScrollPane resolutionScrollPane;
54 private JScrollPane statusScrollPane;
55 private JScrollPane affectVersionScrollPane;
56 private JScrollPane fixForScrollPane;
57 private JScrollPane projectScrollPane;
58 private JScrollPane issueTypeScrollPane;
59 private JScrollPane componentsScrollPane;
60 private JList componentsList;
61 private CollapsiblePanel componentsVersionsCollapsiblePanel;
62 private JPanel componentsVersionsPanel;
63 private CollapsiblePanel issueAttributesCollapsiblePanel;
64 private JPanel issueAttributesPanel;
65 private JLabel componentsLabel;
66 private JLabel fixForLabel;
67 private JLabel reporterLabel;
68 private JLabel assigneeLabel;
69 private JLabel statusLabel;
70 private JLabel resolutionsLabel;
71 private JLabel prioritiesLabel;
72 private JLabel affectsVersionsLabel;
73 private JPanel generalPanel;
74
75 private ProgressAnimationProvider progressAnimation;
76 private boolean initialFilterSet;
77
78 private JIRAServer jiraServer;
79
80 public JIRAIssueFilterPanel(ProgressAnimationProvider progressAnimation) {
81 $$$setupUI$$$();
82
83 this.progressAnimation = progressAnimation;
84 this.projectList.setCellRenderer(new JIRAQueryFragmentListRenderer());
85 this.issueTypeList.setCellRenderer(new JIRAConstantListRenderer());
86 this.statusList.setCellRenderer(new JIRAConstantListRenderer());
87 this.prioritiesList.setCellRenderer(new JIRAConstantListRenderer());
88 this.resolutionsList.setCellRenderer(new JIRAQueryFragmentListRenderer());
89 this.fixForList.setCellRenderer(new JIRAQueryFragmentListRenderer());
90 this.componentsList.setCellRenderer(new JIRAQueryFragmentListRenderer());
91 this.affectsVersionsList.setCellRenderer(new JIRAQueryFragmentListRenderer());
92 this.reporterComboBox.setRenderer(new JIRAQueryFragmentListRenderer());
93 this.assigneeComboBox.setRenderer(new JIRAQueryFragmentListRenderer());
94
95 projectList.addListSelectionListener(new ListSelectionListener() {
96 public void valueChanged(ListSelectionEvent event) {
97 int size = projectList.getSelectedValues().length;
98 switch (size) {
99 case 0:
100 jiraServer.setCurrentProject(null);
101 refreshProjectDependentLists();
102 break;
103 case 1:
104 JIRAProjectBean project = (JIRAProjectBean) projectList.getSelectedValues()[0];
105 jiraServer.setCurrentProject(project);
106 refreshProjectDependentLists();
107 break;
108 default:
109 jiraServer.setCurrentProject(null);
110 clearProjectDependentLists();
111 refreshGlobalIssueTypeList();
112 break;
113 }
114 }
115 });
116 }
117
118 public void setProgressAnimation(ProgressAnimationProvider progressAnimation) {
119 this.progressAnimation = progressAnimation;
120 }
121
122 private void enableProjectDependentLists(boolean value) {
123 this.fixForList.setEnabled(value);
124 this.componentsList.setEnabled(value);
125 this.affectsVersionsList.setEnabled(value);
126
127 int visibleListCount = 0;
128 if (this.fixForList.getModel().getSize() == 0) {
129 this.fixForScrollPane.setEnabled(false);
130 } else {
131 this.fixForScrollPane.setEnabled(true);
132 visibleListCount++;
133 }
134 if (this.componentsList.getModel().getSize() == 0) {
135 this.componentsScrollPane.setEnabled(false);
136 } else {
137 this.componentsScrollPane.setEnabled(true);
138 visibleListCount++;
139 }
140 if (this.affectsVersionsList.getModel().getSize() == 0) {
141 this.affectVersionScrollPane.setEnabled(false);
142 } else {
143 this.affectVersionScrollPane.setEnabled(true);
144 visibleListCount++;
145 }
146
147 if (visibleListCount == 0) {
148 componentsVersionsCollapsiblePanel.collapse();
149 } else {
150 componentsVersionsCollapsiblePanel.expand();
151 }
152
153 rootPanel.validate();
154 }
155
156 private void clearProjectDependentLists() {
157 this.issueTypeList.setListData(new Object[0]);
158 this.fixForList.setListData(new Object[0]);
159 this.componentsList.setListData(new Object[0]);
160 this.affectsVersionsList.setListData(new Object[0]);
161
162 enableProjectDependentLists(false);
163 }
164
165 private void refreshGlobalIssueTypeList() {
166 if (initialFilterSet) {
167 issueTypeList.setListData(jiraServer.getIssueTypes().toArray());
168 } else {
169 new Thread(new Runnable() {
170 public void run() {
171 progressAnimation.startProgressAnimation();
172 issueTypeList.setListData(jiraServer.getIssueTypes().toArray());
173 progressAnimation.stopProgressAnimation();
174 }
175 }, "JIRA filter project values retrieve").start();
176 }
177
178 }
179
180 private void refreshProjectDependentLists() {
181 if (jiraServer.getCurrentProject() != null) {
182 if (jiraServer.getCurrentProject().getId() == JIRAServer.ANY_ID) {
183 clearProjectDependentLists();
184 } else {
185 if (initialFilterSet) {
186 setProjectDependendListValues();
187 } else {
188 new Thread(new Runnable() {
189 public void run() {
190 setProjectDependendListValues();
191 }
192 }, "JIRA filter project values retrieve").start();
193 }
194 }
195 } else {
196 clearProjectDependentLists();
197 }
198 }
199
200 private void setProjectDependendListValues() {
201 progressAnimation.startProgressAnimation();
202 issueTypeList.setListData(jiraServer.getIssueTypes().toArray());
203 fixForList.setListData(jiraServer.getFixForVersions().toArray());
204 componentsList.setListData(jiraServer.getComponents().toArray());
205 affectsVersionsList.setListData(jiraServer.getVersions().toArray());
206 enableProjectDependentLists(true);
207 progressAnimation.stopProgressAnimation();
208 }
209
210 public void setJiraServer(final JIRAServer jServer, final List<JIRAQueryFragment> advancedQuery) {
211 new Thread(new Runnable() {
212 public void run() {
213 initialFilterSet = true;
214 progressAnimation.startProgressAnimation();
215 jiraServer = jServer;
216 projectList.setListData(jiraServer.getProjects().toArray());
217 issueTypeList.setListData(jiraServer.getIssueTypes().toArray());
218 statusList.setListData(jiraServer.getStatuses().toArray());
219 prioritiesList.setListData(jiraServer.getPriorieties().toArray());
220 resolutionsList.setListData(jiraServer.getResolutions().toArray());
221 fixForList.setListData(jiraServer.getFixForVersions().toArray());
222 componentsList.setListData(jiraServer.getComponents().toArray());
223 affectsVersionsList.setListData(jiraServer.getVersions().toArray());
224
225 reporterComboBox.removeAllItems();
226 reporterComboBox.addItem(new JIRAReporterBean(JIRAServer.ANY_ID, "Any User", null));
227
228 reporterComboBox.addItem(new JIRAReporterBean((long) -1, "Current User", jiraServer.getServer().getUserName()));
229
230 assigneeComboBox.removeAllItems();
231 assigneeComboBox.addItem(new JIRAAssigneeBean(JIRAServer.ANY_ID, "Any User", ""));
232 assigneeComboBox.addItem(new JIRAAssigneeBean((long) -1, "Unassigned", "unassigned"));
233 assigneeComboBox.addItem(new JIRAAssigneeBean((long) -1, "Current User", jiraServer.getServer().getUserName()));
234
235
236 setListValues(projectList, advancedQuery);
237 setListValues(statusList, advancedQuery);
238 setListValues(prioritiesList, advancedQuery);
239 setListValues(resolutionsList, advancedQuery);
240 setListValues(issueTypeList, advancedQuery);
241 setListValues(componentsList, advancedQuery);
242 setListValues(fixForList, advancedQuery);
243 setListValues(affectsVersionsList, advancedQuery);
244 setComboValue(assigneeComboBox, advancedQuery);
245 setComboValue(reporterComboBox, advancedQuery);
246
247 progressAnimation.stopProgressAnimation();
248 initialFilterSet = false;
249 }
250 }, "JIRA initial filter set").start();
251 }
252
253 public void setListValues(JList list, List<JIRAQueryFragment> advancedQuery) {
254 List<Integer> selection = new ArrayList<Integer>();
255 for (int i = 0, size = list.getModel().getSize(); i < size; ++i) {
256 for (JIRAQueryFragment jiraQueryFragment : advancedQuery) {
257 JIRAQueryFragment fragment = (JIRAQueryFragment) list.getModel().getElementAt(i);
258 if (jiraQueryFragment.getQueryStringFragment().equals(fragment.getQueryStringFragment())) {
259 selection.add(i);
260 }
261 }
262 }
263 if (selection.size() > 0) {
264 int[] sel = new int[selection.size()];
265 int j = 0;
266 for (Integer integer : selection) {
267 sel[j++] = integer;
268 }
269 list.setSelectedIndices(sel);
270 list.ensureIndexIsVisible(sel[0]);
271 }
272 }
273
274 public void setComboValue
275 (JComboBox
276 combo,
277 List<JIRAQueryFragment> advancedQuery) {
278 for (int i = 0, size = combo.getModel().getSize(); i < size; ++i) {
279 for (JIRAQueryFragment jiraQueryFragment : advancedQuery) {
280 JIRAQueryFragment fragment = (JIRAQueryFragment) combo.getModel().getElementAt(i);
281 if (jiraQueryFragment.getQueryStringFragment().equals(fragment.getQueryStringFragment())) {
282 combo.setSelectedIndex(i);
283 break;
284 }
285 }
286 }
287 }
288
289
290 public List<JIRAQueryFragment> getFilter() {
291 List<JIRAQueryFragment> query = new ArrayList<JIRAQueryFragment>();
292 for (Object o : projectList.getSelectedValues()) {
293 query.add((JIRAQueryFragment) o);
294 }
295 for (Object o : issueTypeList.getSelectedValues()) {
296 query.add((JIRAQueryFragment) o);
297 }
298 for (Object o : statusList.getSelectedValues()) {
299 query.add((JIRAQueryFragment) o);
300 }
301 for (Object o : prioritiesList.getSelectedValues()) {
302 query.add((JIRAQueryFragment) o);
303 }
304 for (Object o : resolutionsList.getSelectedValues()) {
305 query.add((JIRAQueryFragment) o);
306 }
307 for (Object o : fixForList.getSelectedValues()) {
308 query.add((JIRAQueryFragment) o);
309 }
310 for (Object o : componentsList.getSelectedValues()) {
311 query.add((JIRAQueryFragment) o);
312 }
313 for (Object o : affectsVersionsList.getSelectedValues()) {
314 query.add((JIRAQueryFragment) o);
315 }
316 query.add((JIRAQueryFragment) assigneeComboBox.getSelectedItem());
317 query.add((JIRAQueryFragment) reporterComboBox.getSelectedItem());
318 return query;
319 }
320
321 private void createUIComponents
322 () {
323 Icon collapse = IconLoader.findIcon("/icons/navigate_down_10.gif");
324 Icon expand = IconLoader.findIcon("/icons/navigate_right_10.gif");
325 componentsVersionsPanel = new JPanel();
326 issueAttributesPanel = new JPanel();
327
328 componentsVersionsCollapsiblePanel = new CollapsiblePanel(componentsVersionsPanel, true, false, collapse, expand, "Components/Versions");
329 issueAttributesCollapsiblePanel = new CollapsiblePanel(issueAttributesPanel, true, false, collapse, expand, "Issue Attributes");
330 }
331
332
333
334
335
336
337
338
339 private void $$$setupUI$$$() {
340 createUIComponents();
341 rootPanel = new JPanel();
342 rootPanel.setLayout(new FormLayout("fill:max(d;4px):noGrow", "center:max(d;4px):noGrow,top:3dlu:noGrow,center:max(d;4px):noGrow,top:3dlu:noGrow,center:max(d;4px):noGrow,top:3dlu:noGrow,center:max(d;4px):noGrow,top:3dlu:noGrow,center:max(d;4px):noGrow,top:3dlu:noGrow,center:d:grow"));
343 rootPanel.setFocusCycleRoot(false);
344 rootPanel.setMaximumSize(new Dimension(-1, -1));
345 componentsVersionsPanel.setLayout(new FormLayout("fill:72px:noGrow,left:4dlu:noGrow,fill:d:grow", "center:d:grow,top:3dlu:noGrow,center:d:grow,top:3dlu:noGrow,center:d:grow"));
346 componentsVersionsPanel.setEnabled(false);
347 componentsVersionsPanel.setMinimumSize(new Dimension(335, -1));
348 componentsVersionsPanel.setPreferredSize(new Dimension(335, 250));
349 CellConstraints cc = new CellConstraints();
350 rootPanel.add(componentsVersionsPanel, cc.xy(1, 5, CellConstraints.DEFAULT, CellConstraints.TOP));
351 fixForScrollPane = new JScrollPane();
352 componentsVersionsPanel.add(fixForScrollPane, cc.xy(3, 1));
353 fixForList = new JList();
354 fixForList.setVisibleRowCount(5);
355 fixForScrollPane.setViewportView(fixForList);
356 componentsScrollPane = new JScrollPane();
357 componentsVersionsPanel.add(componentsScrollPane, cc.xy(3, 3));
358 componentsList = new JList();
359 final DefaultListModel defaultListModel1 = new DefaultListModel();
360 componentsList.setModel(defaultListModel1);
361 componentsList.setVisible(true);
362 componentsList.setVisibleRowCount(5);
363 componentsScrollPane.setViewportView(componentsList);
364 affectVersionScrollPane = new JScrollPane();
365 componentsVersionsPanel.add(affectVersionScrollPane, cc.xy(3, 5));
366 affectsVersionsList = new JList();
367 final DefaultListModel defaultListModel2 = new DefaultListModel();
368 affectsVersionsList.setModel(defaultListModel2);
369 affectsVersionsList.setVisibleRowCount(5);
370 affectVersionScrollPane.setViewportView(affectsVersionsList);
371 fixForLabel = new JLabel();
372 fixForLabel.setFont(new Font(fixForLabel.getFont().getName(), fixForLabel.getFont().getStyle(), 11));
373 fixForLabel.setText("Fix For:");
374 componentsVersionsPanel.add(fixForLabel, cc.xy(1, 1, CellConstraints.RIGHT, CellConstraints.TOP));
375 componentsLabel = new JLabel();
376 componentsLabel.setFont(new Font(componentsLabel.getFont().getName(), componentsLabel.getFont().getStyle(), 11));
377 componentsLabel.setHorizontalAlignment(4);
378 componentsLabel.setText("Components:");
379 componentsVersionsPanel.add(componentsLabel, cc.xy(1, 3, CellConstraints.RIGHT, CellConstraints.TOP));
380 affectsVersionsLabel = new JLabel();
381 affectsVersionsLabel.setFont(new Font(affectsVersionsLabel.getFont().getName(), affectsVersionsLabel.getFont().getStyle(), 11));
382 affectsVersionsLabel.setText("<html>Affects<br> Versions:</html>");
383 componentsVersionsPanel.add(affectsVersionsLabel, cc.xy(1, 5, CellConstraints.RIGHT, CellConstraints.TOP));
384 issueAttributesCollapsiblePanel.setBackground(new Color(-6711040));
385 issueAttributesCollapsiblePanel.putClientProperty("html.disable", Boolean.TRUE);
386 rootPanel.add(issueAttributesCollapsiblePanel, cc.xy(1, 7));
387 issueAttributesPanel.setLayout(new FormLayout("fill:72px:noGrow,left:4dlu:noGrow,fill:d:grow", "center:max(d;4px):noGrow,top:3dlu:noGrow,center:max(d;4px):noGrow,top:3dlu:noGrow,center:d:grow,top:3dlu:noGrow,center:d:grow,top:3dlu:noGrow,center:d:grow"));
388 issueAttributesPanel.setEnabled(false);
389 issueAttributesPanel.setMinimumSize(new Dimension(335, -1));
390 issueAttributesPanel.setPreferredSize(new Dimension(335, 314));
391 rootPanel.add(issueAttributesPanel, new CellConstraints(1, 9, 1, 1, CellConstraints.DEFAULT, CellConstraints.TOP, new Insets(0, 0, 5, 0)));
392 reporterComboBox = new JComboBox();
393 reporterComboBox.setLightWeightPopupEnabled(false);
394 reporterComboBox.setMaximumRowCount(5);
395 issueAttributesPanel.add(reporterComboBox, cc.xy(3, 1));
396 assigneeComboBox = new JComboBox();
397 assigneeComboBox.setLightWeightPopupEnabled(false);
398 assigneeComboBox.setMaximumRowCount(5);
399 issueAttributesPanel.add(assigneeComboBox, cc.xy(3, 3));
400 statusScrollPane = new JScrollPane();
401 issueAttributesPanel.add(statusScrollPane, cc.xy(3, 5));
402 statusList = new JList();
403 final DefaultListModel defaultListModel3 = new DefaultListModel();
404 statusList.setModel(defaultListModel3);
405 statusList.setVisibleRowCount(5);
406 statusScrollPane.setViewportView(statusList);
407 resolutionScrollPane = new JScrollPane();
408 issueAttributesPanel.add(resolutionScrollPane, cc.xy(3, 7));
409 resolutionsList = new JList();
410 final DefaultListModel defaultListModel4 = new DefaultListModel();
411 resolutionsList.setModel(defaultListModel4);
412 resolutionsList.setVisibleRowCount(5);
413 resolutionScrollPane.setViewportView(resolutionsList);
414 prioritiesScrollPane = new JScrollPane();
415 issueAttributesPanel.add(prioritiesScrollPane, cc.xy(3, 9));
416 prioritiesList = new JList();
417 prioritiesList.setVisibleRowCount(5);
418 prioritiesScrollPane.setViewportView(prioritiesList);
419 reporterLabel = new JLabel();
420 reporterLabel.setFont(new Font(reporterLabel.getFont().getName(), reporterLabel.getFont().getStyle(), 11));
421 reporterLabel.setHorizontalAlignment(4);
422 reporterLabel.setText("Reporter:");
423 issueAttributesPanel.add(reporterLabel, cc.xy(1, 1, CellConstraints.RIGHT, CellConstraints.TOP));
424 assigneeLabel = new JLabel();
425 assigneeLabel.setFont(new Font(assigneeLabel.getFont().getName(), assigneeLabel.getFont().getStyle(), 11));
426 assigneeLabel.setHorizontalAlignment(4);
427 assigneeLabel.setText("Assignee:");
428 issueAttributesPanel.add(assigneeLabel, cc.xy(1, 3, CellConstraints.RIGHT, CellConstraints.TOP));
429 statusLabel = new JLabel();
430 statusLabel.setFont(new Font(statusLabel.getFont().getName(), statusLabel.getFont().getStyle(), 11));
431 statusLabel.setHorizontalAlignment(4);
432 statusLabel.setRequestFocusEnabled(false);
433 statusLabel.setText("Status:");
434 issueAttributesPanel.add(statusLabel, cc.xy(1, 5, CellConstraints.RIGHT, CellConstraints.TOP));
435 resolutionsLabel = new JLabel();
436 resolutionsLabel.setFont(new Font(resolutionsLabel.getFont().getName(), resolutionsLabel.getFont().getStyle(), 11));
437 resolutionsLabel.setHorizontalAlignment(4);
438 resolutionsLabel.setText("Resolutions:");
439 issueAttributesPanel.add(resolutionsLabel, cc.xy(1, 7, CellConstraints.RIGHT, CellConstraints.TOP));
440 prioritiesLabel = new JLabel();
441 prioritiesLabel.setFont(new Font(prioritiesLabel.getFont().getName(), prioritiesLabel.getFont().getStyle(), 11));
442 prioritiesLabel.setHorizontalAlignment(4);
443 prioritiesLabel.setText("Priorities:");
444 prioritiesLabel.setVerticalTextPosition(0);
445 issueAttributesPanel.add(prioritiesLabel, cc.xy(1, 9, CellConstraints.RIGHT, CellConstraints.TOP));
446 componentsVersionsCollapsiblePanel.setBackground(new Color(-3368704));
447 componentsVersionsCollapsiblePanel.setFont(new Font(componentsVersionsCollapsiblePanel.getFont().getName(), componentsVersionsCollapsiblePanel.getFont().getStyle(), componentsVersionsCollapsiblePanel.getFont().getSize()));
448 rootPanel.add(componentsVersionsCollapsiblePanel, cc.xy(1, 3, CellConstraints.FILL, CellConstraints.DEFAULT));
449 generalPanel = new JPanel();
450 generalPanel.setLayout(new FormLayout("fill:72px:noGrow,left:4dlu:noGrow,fill:d:grow", "fill:d:grow,top:3dlu:noGrow,fill:max(d;4px):noGrow"));
451 generalPanel.setDoubleBuffered(true);
452 generalPanel.setEnabled(false);
453 generalPanel.setMinimumSize(new Dimension(335, -1));
454 rootPanel.add(generalPanel, new CellConstraints(1, 1, 1, 1, CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(5, 0, 0, 0)));
455 final JLabel label1 = new JLabel();
456 label1.setFont(new Font(label1.getFont().getName(), label1.getFont().getStyle(), 11));
457 label1.setText("Project:");
458 label1.setVerticalAlignment(1);
459 generalPanel.add(label1, cc.xy(1, 1, CellConstraints.RIGHT, CellConstraints.TOP));
460 issueTypeScrollPane = new JScrollPane();
461 issueTypeScrollPane.setDoubleBuffered(false);
462 generalPanel.add(issueTypeScrollPane, cc.xy(3, 3));
463 issueTypeList = new JList();
464 issueTypeList.setVisibleRowCount(5);
465 issueTypeScrollPane.setViewportView(issueTypeList);
466 projectScrollPane = new JScrollPane();
467 generalPanel.add(projectScrollPane, cc.xy(3, 1));
468 projectList = new JList();
469 projectList.setInheritsPopupMenu(false);
470 projectList.setLayoutOrientation(0);
471 final DefaultListModel defaultListModel5 = new DefaultListModel();
472 projectList.setModel(defaultListModel5);
473 projectList.setVisibleRowCount(5);
474 projectScrollPane.setViewportView(projectList);
475 final JLabel label2 = new JLabel();
476 label2.setFont(new Font(label2.getFont().getName(), label2.getFont().getStyle(), 11));
477 label2.setRequestFocusEnabled(true);
478 label2.setText("Issue Type:");
479 generalPanel.add(label2, cc.xy(1, 3, CellConstraints.RIGHT, CellConstraints.TOP));
480 final Spacer spacer1 = new Spacer();
481 rootPanel.add(spacer1, cc.xy(1, 11, CellConstraints.DEFAULT, CellConstraints.FILL));
482 fixForLabel.setLabelFor(fixForScrollPane);
483 componentsLabel.setLabelFor(componentsScrollPane);
484 componentsLabel.setNextFocusableComponent(componentsScrollPane);
485 affectsVersionsLabel.setLabelFor(affectVersionScrollPane);
486 reporterLabel.setLabelFor(reporterComboBox);
487 assigneeLabel.setLabelFor(assigneeComboBox);
488 statusLabel.setLabelFor(statusScrollPane);
489 resolutionsLabel.setLabelFor(resolutionScrollPane);
490 prioritiesLabel.setLabelFor(prioritiesScrollPane);
491 label1.setLabelFor(projectScrollPane);
492 label2.setLabelFor(issueTypeScrollPane);
493 }
494
495
496
497
498 public JComponent $$$getRootComponent$$$() {
499 return rootPanel;
500 }
501 }
502