Lines 189-194
Link Here
|
189 |
|
189 |
|
190 |
private static final Project[] NO_PROJECTS = new Project[0]; |
190 |
private static final Project[] NO_PROJECTS = new Project[0]; |
191 |
|
191 |
|
|
|
192 |
private static final int HEIGHT_HINT = 50; |
193 |
|
194 |
private static final int WIDTH_HINT = 150; |
195 |
|
192 |
final Placeholder ALL_PROJECTS = new Placeholder(Messages.JiraFilterDefinitionPage_All_Projects); |
196 |
final Placeholder ALL_PROJECTS = new Placeholder(Messages.JiraFilterDefinitionPage_All_Projects); |
193 |
|
197 |
|
194 |
final Placeholder ANY_ASSIGNEE = new Placeholder(Messages.JiraFilterDefinitionPage_Any); |
198 |
final Placeholder ANY_ASSIGNEE = new Placeholder(Messages.JiraFilterDefinitionPage_Any); |
Lines 626-633
Link Here
|
626 |
private void createComponentsViewer(Composite c) { |
630 |
private void createComponentsViewer(Composite c) { |
627 |
components = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
631 |
components = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
628 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
632 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
629 |
gridData.heightHint = 50; |
633 |
gridData.heightHint = HEIGHT_HINT; |
630 |
gridData.widthHint = 90; |
634 |
gridData.widthHint = WIDTH_HINT; |
631 |
components.getControl().setLayoutData(gridData); |
635 |
components.getControl().setLayoutData(gridData); |
632 |
|
636 |
|
633 |
components.setContentProvider(new IStructuredContentProvider() { |
637 |
components.setContentProvider(new IStructuredContentProvider() { |
Lines 642-655
Link Here
|
642 |
|
646 |
|
643 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
647 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
644 |
Project[] projects = (Project[]) newInput; |
648 |
Project[] projects = (Project[]) newInput; |
645 |
if (projects == null || projects.length == 0) { |
649 |
if (projects == null || projects.length == 0 || projects.length > 1) { |
646 |
currentElements = new Object[] { ANY_COMPONENT }; |
650 |
currentElements = new Object[] { ANY_COMPONENT }; |
647 |
} else { |
651 |
} else { |
648 |
Set<Object> elements = new LinkedHashSet<Object>(); |
652 |
Set<Object> elements = new LinkedHashSet<Object>(); |
649 |
elements.add(ANY_COMPONENT); |
653 |
elements.add(ANY_COMPONENT); |
650 |
elements.add(NO_COMPONENT); |
654 |
elements.add(NO_COMPONENT); |
651 |
for (Project project : projects) { |
655 |
for (Project project : projects) { |
652 |
if (project != null) { |
656 |
if (project != null && project.hasDetails()) { |
653 |
elements.addAll(Arrays.asList(project.getComponents())); |
657 |
elements.addAll(Arrays.asList(project.getComponents())); |
654 |
} |
658 |
} |
655 |
} |
659 |
} |
Lines 740-751
Link Here
|
740 |
{ |
744 |
{ |
741 |
SashForm cc = new SashForm(sashForm, SWT.NONE); |
745 |
SashForm cc = new SashForm(sashForm, SWT.NONE); |
742 |
|
746 |
|
743 |
ISelectionChangedListener selectionChangeListener = new ISelectionChangedListener() { |
|
|
744 |
public void selectionChanged(SelectionChangedEvent event) { |
745 |
// validatePage(); |
746 |
} |
747 |
}; |
748 |
|
749 |
{ |
747 |
{ |
750 |
Composite comp = new Composite(cc, SWT.NONE); |
748 |
Composite comp = new Composite(cc, SWT.NONE); |
751 |
GridLayout gridLayout = new GridLayout(); |
749 |
GridLayout gridLayout = new GridLayout(); |
Lines 757-782
Link Here
|
757 |
typeLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); |
755 |
typeLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); |
758 |
typeLabel.setText(Messages.JiraFilterDefinitionPage_Type); |
756 |
typeLabel.setText(Messages.JiraFilterDefinitionPage_Type); |
759 |
|
757 |
|
760 |
issueType = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
758 |
createIssueTypesViewer(comp); |
761 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
|
|
762 |
gridData.heightHint = 50; |
763 |
gridData.widthHint = 90; |
764 |
issueType.getList().setLayoutData(gridData); |
765 |
|
766 |
issueType.setLabelProvider(new LabelProvider() { |
767 |
|
768 |
@Override |
769 |
public String getText(Object element) { |
770 |
if (element instanceof Placeholder) { |
771 |
return ((Placeholder) element).getText(); |
772 |
} |
773 |
|
774 |
return ((IssueType) element).getName(); |
775 |
} |
776 |
|
777 |
}); |
778 |
|
779 |
issueType.addSelectionChangedListener(selectionChangeListener); |
780 |
} |
759 |
} |
781 |
|
760 |
|
782 |
{ |
761 |
{ |
Lines 792-799
Link Here
|
792 |
|
771 |
|
793 |
status = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
772 |
status = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
794 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
773 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
795 |
gridData.heightHint = 50; |
774 |
gridData.heightHint = HEIGHT_HINT; |
796 |
gridData.widthHint = 90; |
775 |
gridData.widthHint = WIDTH_HINT; |
797 |
status.getList().setLayoutData(gridData); |
776 |
status.getList().setLayoutData(gridData); |
798 |
|
777 |
|
799 |
status.setLabelProvider(new LabelProvider() { |
778 |
status.setLabelProvider(new LabelProvider() { |
Lines 808-815
Link Here
|
808 |
} |
787 |
} |
809 |
|
788 |
|
810 |
}); |
789 |
}); |
811 |
|
|
|
812 |
status.addSelectionChangedListener(selectionChangeListener); |
813 |
} |
790 |
} |
814 |
|
791 |
|
815 |
{ |
792 |
{ |
Lines 825-832
Link Here
|
825 |
|
802 |
|
826 |
resolution = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
803 |
resolution = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
827 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
804 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
828 |
gridData.heightHint = 50; |
805 |
gridData.heightHint = HEIGHT_HINT; |
829 |
gridData.widthHint = 90; |
806 |
gridData.widthHint = WIDTH_HINT; |
830 |
resolution.getList().setLayoutData(gridData); |
807 |
resolution.getList().setLayoutData(gridData); |
831 |
|
808 |
|
832 |
resolution.setLabelProvider(new LabelProvider() { |
809 |
resolution.setLabelProvider(new LabelProvider() { |
Lines 841-848
Link Here
|
841 |
} |
818 |
} |
842 |
|
819 |
|
843 |
}); |
820 |
}); |
844 |
|
|
|
845 |
resolution.addSelectionChangedListener(selectionChangeListener); |
846 |
} |
821 |
} |
847 |
|
822 |
|
848 |
{ |
823 |
{ |
Lines 858-865
Link Here
|
858 |
|
833 |
|
859 |
priority = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
834 |
priority = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
860 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
835 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
861 |
gridData.heightHint = 50; |
836 |
gridData.heightHint = HEIGHT_HINT; |
862 |
gridData.widthHint = 90; |
837 |
gridData.widthHint = WIDTH_HINT; |
863 |
priority.getList().setLayoutData(gridData); |
838 |
priority.getList().setLayoutData(gridData); |
864 |
|
839 |
|
865 |
priority.setLabelProvider(new LabelProvider() { |
840 |
priority.setLabelProvider(new LabelProvider() { |
Lines 874-880
Link Here
|
874 |
} |
849 |
} |
875 |
|
850 |
|
876 |
}); |
851 |
}); |
877 |
priority.addSelectionChangedListener(selectionChangeListener); |
|
|
878 |
} |
852 |
} |
879 |
|
853 |
|
880 |
cc.setWeights(new int[] { 1, 1, 1, 1 }); |
854 |
cc.setWeights(new int[] { 1, 1, 1, 1 }); |
Lines 1118-1123
Link Here
|
1118 |
Dialog.applyDialogFont(parent); |
1092 |
Dialog.applyDialogFont(parent); |
1119 |
} |
1093 |
} |
1120 |
|
1094 |
|
|
|
1095 |
private void createIssueTypesViewer(Composite comp) { |
1096 |
issueType = new ListViewer(comp, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1097 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1098 |
gridData.heightHint = HEIGHT_HINT; |
1099 |
gridData.widthHint = WIDTH_HINT; |
1100 |
issueType.getList().setLayoutData(gridData); |
1101 |
|
1102 |
issueType.setContentProvider(new IStructuredContentProvider() { |
1103 |
private Object[] currentElements; |
1104 |
|
1105 |
public Object[] getElements(Object inputElement) { |
1106 |
return currentElements; |
1107 |
} |
1108 |
|
1109 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
1110 |
final Project[] projects = (Project[]) newInput; |
1111 |
IssueType[] types = null; |
1112 |
|
1113 |
if (projects == null || projects.length == 0 || projects.length > 1) { |
1114 |
types = client.getCache().getIssueTypes(); |
1115 |
} else if (projects[0].hasDetails()) { |
1116 |
types = projects[0].getIssueTypes(); |
1117 |
} |
1118 |
|
1119 |
if (types != null) { |
1120 |
Object[] elements = new Object[types.length + 1]; |
1121 |
System.arraycopy(types, 0, elements, 1, types.length); |
1122 |
elements[0] = ANY_ISSUE_TYPE; |
1123 |
currentElements = elements; |
1124 |
} |
1125 |
} |
1126 |
|
1127 |
public void dispose() { |
1128 |
} |
1129 |
}); |
1130 |
|
1131 |
issueType.setLabelProvider(new LabelProvider() { |
1132 |
|
1133 |
@Override |
1134 |
public String getText(Object element) { |
1135 |
if (element instanceof Placeholder) { |
1136 |
return ((Placeholder) element).getText(); |
1137 |
} |
1138 |
|
1139 |
return ((IssueType) element).getName(); |
1140 |
} |
1141 |
|
1142 |
}); |
1143 |
|
1144 |
issueType.setInput(NO_PROJECTS); |
1145 |
} |
1146 |
|
1121 |
// @Override |
1147 |
// @Override |
1122 |
// public boolean isPageComplete() { |
1148 |
// public boolean isPageComplete() { |
1123 |
// // XXX workaround for bad implementation of AbstractRepositoryQueryPage.isPageComplete() |
1149 |
// // XXX workaround for bad implementation of AbstractRepositoryQueryPage.isPageComplete() |
Lines 1142-1149
Link Here
|
1142 |
private void createFixForViewer(Composite c) { |
1168 |
private void createFixForViewer(Composite c) { |
1143 |
fixFor = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1169 |
fixFor = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1144 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1170 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1145 |
gridData.heightHint = 50; |
1171 |
gridData.heightHint = HEIGHT_HINT; |
1146 |
gridData.widthHint = 90; |
1172 |
gridData.widthHint = WIDTH_HINT; |
1147 |
fixFor.getControl().setLayoutData(gridData); |
1173 |
fixFor.getControl().setLayoutData(gridData); |
1148 |
|
1174 |
|
1149 |
fixFor.setContentProvider(new IStructuredContentProvider() { |
1175 |
fixFor.setContentProvider(new IStructuredContentProvider() { |
Lines 1158-1164
Link Here
|
1158 |
|
1184 |
|
1159 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
1185 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
1160 |
Project[] projects = (Project[]) newInput; |
1186 |
Project[] projects = (Project[]) newInput; |
1161 |
if (projects == null || projects.length == 0) { |
1187 |
if (projects == null || projects.length == 0 || projects.length > 1) { |
1162 |
currentElements = new Object[] { ANY_FIX_VERSION }; |
1188 |
currentElements = new Object[] { ANY_FIX_VERSION }; |
1163 |
} else { |
1189 |
} else { |
1164 |
List<Object> elements = new ArrayList<Object>(); |
1190 |
List<Object> elements = new ArrayList<Object>(); |
Lines 1169-1175
Link Here
|
1169 |
Set<Version> unreleasedVersions = new LinkedHashSet<Version>(); |
1195 |
Set<Version> unreleasedVersions = new LinkedHashSet<Version>(); |
1170 |
|
1196 |
|
1171 |
for (Project project : projects) { |
1197 |
for (Project project : projects) { |
1172 |
if (project != null) { |
1198 |
if (project != null && project.hasDetails()) { |
1173 |
releasedVersions.addAll(Arrays.asList(project.getReleasedVersions())); |
1199 |
releasedVersions.addAll(Arrays.asList(project.getReleasedVersions())); |
1174 |
unreleasedVersions.addAll(Arrays.asList(project.getUnreleasedVersions())); |
1200 |
unreleasedVersions.addAll(Arrays.asList(project.getUnreleasedVersions())); |
1175 |
} |
1201 |
} |
Lines 1191-1198
Link Here
|
1191 |
private void createProjectsViewer(Composite c) { |
1217 |
private void createProjectsViewer(Composite c) { |
1192 |
project = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1218 |
project = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1193 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1219 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1194 |
gridData.heightHint = 50; |
1220 |
gridData.heightHint = HEIGHT_HINT; |
1195 |
gridData.widthHint = 90; |
1221 |
gridData.widthHint = WIDTH_HINT; |
1196 |
project.getControl().setLayoutData(gridData); |
1222 |
project.getControl().setLayoutData(gridData); |
1197 |
|
1223 |
|
1198 |
project.setLabelProvider(new LabelProvider() { |
1224 |
project.setLabelProvider(new LabelProvider() { |
Lines 1226-1233
Link Here
|
1226 |
private void createReportedInViewer(Composite c) { |
1252 |
private void createReportedInViewer(Composite c) { |
1227 |
reportedIn = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1253 |
reportedIn = new ListViewer(c, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); |
1228 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1254 |
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
1229 |
gridData.heightHint = 50; |
1255 |
gridData.heightHint = HEIGHT_HINT; |
1230 |
gridData.widthHint = 90; |
1256 |
gridData.widthHint = WIDTH_HINT; |
1231 |
reportedIn.getControl().setLayoutData(gridData); |
1257 |
reportedIn.getControl().setLayoutData(gridData); |
1232 |
|
1258 |
|
1233 |
reportedIn.setContentProvider(new IStructuredContentProvider() { |
1259 |
reportedIn.setContentProvider(new IStructuredContentProvider() { |
Lines 1242-1248
Link Here
|
1242 |
|
1268 |
|
1243 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
1269 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
1244 |
Project[] projects = (Project[]) newInput; |
1270 |
Project[] projects = (Project[]) newInput; |
1245 |
if (projects == null || projects.length == 0) { |
1271 |
if (projects == null || projects.length == 0 || projects.length > 1) { |
1246 |
currentElements = new Object[] { ANY_REPORTED_VERSION }; |
1272 |
currentElements = new Object[] { ANY_REPORTED_VERSION }; |
1247 |
} else { |
1273 |
} else { |
1248 |
List<Object> elements = new ArrayList<Object>(); |
1274 |
List<Object> elements = new ArrayList<Object>(); |
Lines 1253-1259
Link Here
|
1253 |
Set<Object> unreleasedVersions = new LinkedHashSet<Object>(); |
1279 |
Set<Object> unreleasedVersions = new LinkedHashSet<Object>(); |
1254 |
|
1280 |
|
1255 |
for (Project project : projects) { |
1281 |
for (Project project : projects) { |
1256 |
if (project != null) { |
1282 |
if (project != null && project.hasDetails()) { |
1257 |
releasedVersions.addAll(Arrays.asList(project.getReleasedVersions())); |
1283 |
releasedVersions.addAll(Arrays.asList(project.getReleasedVersions())); |
1258 |
unreleasedVersions.addAll(Arrays.asList(project.getUnreleasedVersions())); |
1284 |
unreleasedVersions.addAll(Arrays.asList(project.getUnreleasedVersions())); |
1259 |
} |
1285 |
} |
Lines 1330-1355
Link Here
|
1330 |
}); |
1356 |
}); |
1331 |
project.setInput(client); |
1357 |
project.setInput(client); |
1332 |
|
1358 |
|
1333 |
issueType.setContentProvider(new IStructuredContentProvider() { |
|
|
1334 |
|
1335 |
public void dispose() { |
1336 |
} |
1337 |
|
1338 |
public Object[] getElements(Object inputElement) { |
1339 |
JiraClient server = (JiraClient) inputElement; |
1340 |
Object[] elements = new Object[server.getCache().getIssueTypes().length + 1]; |
1341 |
elements[0] = ANY_ISSUE_TYPE; |
1342 |
System.arraycopy(server.getCache().getIssueTypes(), 0, elements, 1, |
1343 |
server.getCache().getIssueTypes().length); |
1344 |
|
1345 |
return elements; |
1346 |
} |
1347 |
|
1348 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
1349 |
} |
1350 |
}); |
1351 |
issueType.setInput(client); |
1352 |
|
1353 |
status.setContentProvider(new IStructuredContentProvider() { |
1359 |
status.setContentProvider(new IStructuredContentProvider() { |
1354 |
|
1360 |
|
1355 |
public void dispose() { |
1361 |
public void dispose() { |
Lines 1699-1706
Link Here
|
1699 |
} |
1705 |
} |
1700 |
|
1706 |
|
1701 |
void updateCurrentProjects(Project[] projects) { |
1707 |
void updateCurrentProjects(Project[] projects) { |
|
|
1708 |
if (projects != null) { |
1709 |
for (final Project project : projects) { |
1710 |
if (!project.hasDetails()) { |
1711 |
IRunnableWithProgress updateProjectDetails = new IRunnableWithProgress() { |
1712 |
public void run(IProgressMonitor monitor) throws InvocationTargetException, |
1713 |
InterruptedException { |
1714 |
try { |
1715 |
client.getCache().refreshProjectDetails(project.getId(), monitor); |
1716 |
} catch (final JiraException e) { |
1717 |
Display.getDefault().asyncExec(new Runnable() { |
1718 |
public void run() { |
1719 |
JiraFilterDefinitionPage.this.setErrorMessage(NLS.bind( |
1720 |
Messages.JiraFilterDefinitionPage_Error_updating_attributes_X, |
1721 |
e.getMessage())); |
1722 |
} |
1723 |
}); |
1724 |
} |
1725 |
} |
1726 |
}; |
1727 |
|
1728 |
try { |
1729 |
if (getContainer() != null) { |
1730 |
getContainer().run(true, true, updateProjectDetails); |
1731 |
} else if (getSearchContainer() != null) { |
1732 |
getSearchContainer().getRunnableContext().run(true, true, updateProjectDetails); |
1733 |
} else { |
1734 |
IProgressService service = PlatformUI.getWorkbench().getProgressService(); |
1735 |
service.busyCursorWhile(updateProjectDetails); |
1736 |
} |
1737 |
} catch (Exception e) { |
1738 |
JiraFilterDefinitionPage.this.setErrorMessage(NLS.bind( |
1739 |
Messages.JiraFilterDefinitionPage_Error_updating_attributes_X, e.getMessage())); |
1740 |
} |
1741 |
} |
1742 |
} |
1743 |
} |
1744 |
|
1702 |
this.fixFor.setInput(projects); |
1745 |
this.fixFor.setInput(projects); |
1703 |
this.components.setInput(projects); |
1746 |
this.components.setInput(projects); |
1704 |
this.reportedIn.setInput(projects); |
1747 |
this.reportedIn.setInput(projects); |
|
|
1748 |
this.issueType.setInput(projects); |
1705 |
} |
1749 |
} |
1706 |
} |
1750 |
} |