Lines 17-26
Link Here
|
17 |
import java.util.Collection; |
17 |
import java.util.Collection; |
18 |
import java.util.Collections; |
18 |
import java.util.Collections; |
19 |
import java.util.Date; |
19 |
import java.util.Date; |
|
|
20 |
import java.util.HashMap; |
20 |
import java.util.Iterator; |
21 |
import java.util.Iterator; |
21 |
import java.util.LinkedHashSet; |
22 |
import java.util.LinkedHashSet; |
22 |
import java.util.LinkedList; |
23 |
import java.util.LinkedList; |
23 |
import java.util.List; |
24 |
import java.util.List; |
|
|
25 |
import java.util.Map; |
24 |
import java.util.Set; |
26 |
import java.util.Set; |
25 |
|
27 |
|
26 |
import org.eclipse.core.runtime.Assert; |
28 |
import org.eclipse.core.runtime.Assert; |
Lines 349-357
Link Here
|
349 |
// automatically refresh if the user has not made any changes and there is no chance of missing incomings |
351 |
// automatically refresh if the user has not made any changes and there is no chance of missing incomings |
350 |
refreshFormContent(); |
352 |
refreshFormContent(); |
351 |
} else { |
353 |
} else { |
352 |
getTaskEditor().setMessage( |
354 |
getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Task_has_incoming_changes, |
353 |
Messages.AbstractTaskEditorPage_Task_has_incoming_changes, IMessageProvider.WARNING, |
355 |
IMessageProvider.WARNING, new HyperlinkAdapter() { |
354 |
new HyperlinkAdapter() { |
|
|
355 |
@Override |
356 |
@Override |
356 |
public void linkActivated(HyperlinkEvent e) { |
357 |
public void linkActivated(HyperlinkEvent e) { |
357 |
refreshFormContent(); |
358 |
refreshFormContent(); |
Lines 450-455
Link Here
|
450 |
|
451 |
|
451 |
private TaskAttachmentDropListener defaultDropListener; |
452 |
private TaskAttachmentDropListener defaultDropListener; |
452 |
|
453 |
|
|
|
454 |
private final Map<TaskAttribute, AbstractAttributeEditor> attributeEditorMap = new HashMap<TaskAttribute, AbstractAttributeEditor>(); |
455 |
|
453 |
// TODO 3.1 define constructor for setting id and label |
456 |
// TODO 3.1 define constructor for setting id and label |
454 |
public AbstractTaskEditorPage(TaskEditor editor, String connectorKind) { |
457 |
public AbstractTaskEditorPage(TaskEditor editor, String connectorKind) { |
455 |
super(editor, "id", "label"); //$NON-NLS-1$ //$NON-NLS-2$ |
458 |
super(editor, "id", "label"); //$NON-NLS-1$ //$NON-NLS-2$ |
Lines 559-567
Link Here
|
559 |
|
562 |
|
560 |
AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(getConnectorKind()); |
563 |
AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(getConnectorKind()); |
561 |
if (connectorUi == null) { |
564 |
if (connectorUi == null) { |
562 |
getTaskEditor().setMessage( |
565 |
getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Synchronize_to_update_editor_contents, |
563 |
Messages.AbstractTaskEditorPage_Synchronize_to_update_editor_contents, IMessageProvider.INFORMATION, |
566 |
IMessageProvider.INFORMATION, new HyperlinkAdapter() { |
564 |
new HyperlinkAdapter() { |
|
|
565 |
@Override |
567 |
@Override |
566 |
public void linkActivated(HyperlinkEvent e) { |
568 |
public void linkActivated(HyperlinkEvent e) { |
567 |
refreshFormContent(); |
569 |
refreshFormContent(); |
Lines 791-802
Link Here
|
791 |
model.save(monitor); |
793 |
model.save(monitor); |
792 |
} catch (final CoreException e) { |
794 |
} catch (final CoreException e) { |
793 |
StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error saving task", e)); //$NON-NLS-1$ |
795 |
StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error saving task", e)); //$NON-NLS-1$ |
794 |
getTaskEditor().setMessage( |
796 |
getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Could_not_save_task, IMessageProvider.ERROR, |
795 |
Messages.AbstractTaskEditorPage_Could_not_save_task, IMessageProvider.ERROR, new HyperlinkAdapter() { |
797 |
new HyperlinkAdapter() { |
796 |
@Override |
798 |
@Override |
797 |
public void linkActivated(HyperlinkEvent event) { |
799 |
public void linkActivated(HyperlinkEvent event) { |
798 |
TasksUiInternal.displayStatus( |
800 |
TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Save_failed, e.getStatus()); |
799 |
Messages.AbstractTaskEditorPage_Save_failed, e.getStatus()); |
|
|
800 |
} |
801 |
} |
801 |
}); |
802 |
}); |
802 |
} |
803 |
} |
Lines 844-851
Link Here
|
844 |
public void fillToolBar(IToolBarManager toolBarManager) { |
845 |
public void fillToolBar(IToolBarManager toolBarManager) { |
845 |
final TaskRepository taskRepository = (model != null) ? getModel().getTaskRepository() : null; |
846 |
final TaskRepository taskRepository = (model != null) ? getModel().getTaskRepository() : null; |
846 |
if (taskRepository != null) { |
847 |
if (taskRepository != null) { |
847 |
ControlContribution repositoryLabelControl = new ControlContribution( |
848 |
ControlContribution repositoryLabelControl = new ControlContribution(Messages.AbstractTaskEditorPage_Title) { |
848 |
Messages.AbstractTaskEditorPage_Title) { |
|
|
849 |
@Override |
849 |
@Override |
850 |
protected Control createControl(Composite parent) { |
850 |
protected Control createControl(Composite parent) { |
851 |
FormToolkit toolkit = getTaskEditor().getHeaderForm().getToolkit(); |
851 |
FormToolkit toolkit = getTaskEditor().getHeaderForm().getToolkit(); |
Lines 1100-1107
Link Here
|
1100 |
getTaskEditor().setMessage(message, IMessageProvider.ERROR, new HyperlinkAdapter() { |
1100 |
getTaskEditor().setMessage(message, IMessageProvider.ERROR, new HyperlinkAdapter() { |
1101 |
@Override |
1101 |
@Override |
1102 |
public void linkActivated(HyperlinkEvent e) { |
1102 |
public void linkActivated(HyperlinkEvent e) { |
1103 |
TasksUiInternal.displayStatus( |
1103 |
TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Submit_failed, status); |
1104 |
Messages.AbstractTaskEditorPage_Submit_failed, status); |
|
|
1105 |
} |
1104 |
} |
1106 |
}); |
1105 |
}); |
1107 |
} |
1106 |
} |
Lines 1139-1146
Link Here
|
1139 |
|
1138 |
|
1140 |
} catch (final CoreException e) { |
1139 |
} catch (final CoreException e) { |
1141 |
StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error opening task", e)); //$NON-NLS-1$ |
1140 |
StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error opening task", e)); //$NON-NLS-1$ |
1142 |
getTaskEditor().setStatus( |
1141 |
getTaskEditor().setStatus(Messages.AbstractTaskEditorPage_Error_opening_task, |
1143 |
Messages.AbstractTaskEditorPage_Error_opening_task, Messages.AbstractTaskEditorPage_Open_failed, e.getStatus()); |
1142 |
Messages.AbstractTaskEditorPage_Open_failed, e.getStatus()); |
1144 |
} |
1143 |
} |
1145 |
} |
1144 |
} |
1146 |
|
1145 |
|
Lines 1272-1279
Link Here
|
1272 |
refreshDisabled = true; |
1271 |
refreshDisabled = true; |
1273 |
model.refresh(null); |
1272 |
model.refresh(null); |
1274 |
} catch (CoreException e) { |
1273 |
} catch (CoreException e) { |
1275 |
getTaskEditor().setMessage( |
1274 |
getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Failed_to_read_task_data_ + e.getMessage(), |
1276 |
Messages.AbstractTaskEditorPage_Failed_to_read_task_data_ + e.getMessage(), IMessageProvider.ERROR); |
1275 |
IMessageProvider.ERROR); |
1277 |
taskData = null; |
1276 |
taskData = null; |
1278 |
return; |
1277 |
return; |
1279 |
} finally { |
1278 |
} finally { |
Lines 1417-1425
Link Here
|
1417 |
|
1416 |
|
1418 |
private void updateHeaderMessage() { |
1417 |
private void updateHeaderMessage() { |
1419 |
if (taskData == null) { |
1418 |
if (taskData == null) { |
1420 |
getTaskEditor().setMessage( |
1419 |
getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Synchronize_to_retrieve_task_data, |
1421 |
Messages.AbstractTaskEditorPage_Synchronize_to_retrieve_task_data, IMessageProvider.WARNING, |
1420 |
IMessageProvider.WARNING, new HyperlinkAdapter() { |
1422 |
new HyperlinkAdapter() { |
|
|
1423 |
@Override |
1421 |
@Override |
1424 |
public void linkActivated(HyperlinkEvent e) { |
1422 |
public void linkActivated(HyperlinkEvent e) { |
1425 |
if (synchronizeEditorAction != null) { |
1423 |
if (synchronizeEditorAction != null) { |
Lines 1430-1433
Link Here
|
1430 |
} |
1428 |
} |
1431 |
} |
1429 |
} |
1432 |
|
1430 |
|
|
|
1431 |
/** |
1432 |
* @since 3.1 |
1433 |
*/ |
1434 |
public void addToAttributeEditorMap(TaskAttribute attribute, AbstractAttributeEditor editor) { |
1435 |
if (attributeEditorMap.containsKey(attribute)) { |
1436 |
attributeEditorMap.remove(attribute); |
1437 |
} |
1438 |
attributeEditorMap.put(attribute, editor); |
1439 |
} |
1440 |
|
1441 |
/** |
1442 |
* @since 3.1 |
1443 |
*/ |
1444 |
public AbstractAttributeEditor getEditorForAttribute(TaskAttribute attribute) { |
1445 |
return attributeEditorMap.get(attribute); |
1446 |
} |
1447 |
|
1448 |
/** |
1449 |
* @since 3.1 |
1450 |
*/ |
1451 |
public Map<TaskAttribute, AbstractAttributeEditor> getAttributeEditorMap() { |
1452 |
return attributeEditorMap; |
1453 |
} |
1454 |
|
1455 |
/** |
1456 |
* @since 3.1 |
1457 |
*/ |
1458 |
public void refresh() { |
1459 |
try { |
1460 |
showEditorBusy(true); |
1461 |
for (AbstractAttributeEditor abstractAttributeEditor : attributeEditorMap.values()) { |
1462 |
abstractAttributeEditor.refresh(); |
1463 |
} |
1464 |
} finally { |
1465 |
showEditorBusy(false); |
1466 |
} |
1467 |
} |
1433 |
} |
1468 |
} |