|
Lines 116-122
Link Here
|
| 116 |
* closed. |
116 |
* closed. |
| 117 |
* |
117 |
* |
| 118 |
* Key: perspective id |
118 |
* Key: perspective id |
| 119 |
* Value: ArrayList of view ids open in a perspective |
119 |
* Value: HashSet of view ids open in a perspective |
| 120 |
*/ |
120 |
*/ |
| 121 |
private Map openedViewIds= new HashMap(); |
121 |
private Map openedViewIds= new HashMap(); |
| 122 |
|
122 |
|
|
Lines 376-382
Link Here
|
| 376 |
Iterator iter= map.keySet().iterator(); |
376 |
Iterator iter= map.keySet().iterator(); |
| 377 |
while (iter.hasNext()) { |
377 |
while (iter.hasNext()) { |
| 378 |
String perspId = (String) iter.next(); |
378 |
String perspId = (String) iter.next(); |
| 379 |
ArrayList viewIds = (ArrayList)map.get(perspId); |
379 |
Set viewIds = (Set)map.get(perspId); |
| 380 |
views.append("/"); //$NON-NLS-1$ |
380 |
views.append("/"); //$NON-NLS-1$ |
| 381 |
views.append(perspId); |
381 |
views.append(perspId); |
| 382 |
if (viewIds != null && !viewIds.isEmpty()) |
382 |
if (viewIds != null && !viewIds.isEmpty()) |
|
Lines 478-484
Link Here
|
| 478 |
String perspId = data[0]; |
478 |
String perspId = data[0]; |
| 479 |
|
479 |
|
| 480 |
String[] viewIds = data[1].split(","); //$NON-NLS-1$ |
480 |
String[] viewIds = data[1].split(","); //$NON-NLS-1$ |
| 481 |
ArrayList list = new ArrayList(); |
481 |
Set list = new HashSet(); |
| 482 |
for (int j=0; j<viewIds.length; j++) |
482 |
for (int j=0; j<viewIds.length; j++) |
| 483 |
{ |
483 |
{ |
| 484 |
list.add(viewIds[j]); |
484 |
list.add(viewIds[j]); |
|
Lines 549-566
Link Here
|
| 549 |
Iterator iterator= viewsToOpen.iterator(); |
549 |
Iterator iterator= viewsToOpen.iterator(); |
| 550 |
|
550 |
|
| 551 |
String id = page.getPerspective().getId(); |
551 |
String id = page.getPerspective().getId(); |
| 552 |
ArrayList views = (ArrayList)openedViewIds.get(id); |
552 |
Set views = (Set)openedViewIds.get(id); |
| 553 |
if (views == null) |
553 |
if (views == null) |
| 554 |
{ |
554 |
{ |
| 555 |
views = new ArrayList(); |
555 |
views = new HashSet(); |
| 556 |
} |
556 |
} |
| 557 |
|
557 |
|
| 558 |
while (iterator.hasNext()) { |
558 |
while (iterator.hasNext()) { |
| 559 |
String viewId = (String) iterator.next(); |
559 |
String viewId = (String) iterator.next(); |
| 560 |
try { |
560 |
try { |
| 561 |
IViewPart view = page.showView(viewId, null, IWorkbenchPage.VIEW_CREATE); |
561 |
IViewPart view = page.showView(viewId, null, IWorkbenchPage.VIEW_CREATE); |
| 562 |
if (!views.contains(viewId)) |
562 |
views.add(viewId); |
| 563 |
views.add(viewId); |
|
|
| 564 |
|
563 |
|
| 565 |
viewsToShow.add(view); |
564 |
viewsToShow.add(view); |
| 566 |
} catch (PartInitException e) { |
565 |
} catch (PartInitException e) { |
|
Lines 672-678
Link Here
|
| 672 |
Iterator iter= viewsToClose.iterator(); |
671 |
Iterator iter= viewsToClose.iterator(); |
| 673 |
|
672 |
|
| 674 |
String perspId = page.getPerspective().getId(); |
673 |
String perspId = page.getPerspective().getId(); |
| 675 |
ArrayList viewIds = (ArrayList)openedViewIds.get(perspId); |
674 |
Set viewIds = (Set)openedViewIds.get(perspId); |
| 676 |
|
675 |
|
| 677 |
while (iter.hasNext()) { |
676 |
while (iter.hasNext()) { |
| 678 |
String viewId= (String) iter.next(); |
677 |
String viewId= (String) iter.next(); |
|
Lines 683-692
Link Here
|
| 683 |
{ |
682 |
{ |
| 684 |
// remove opened view from perspective |
683 |
// remove opened view from perspective |
| 685 |
viewIds.remove(viewId); |
684 |
viewIds.remove(viewId); |
| 686 |
openedViewIds.put(perspId, viewIds); |
|
|
| 687 |
} |
685 |
} |
| 688 |
} |
686 |
} |
| 689 |
} |
687 |
} |
|
|
688 |
|
| 689 |
if (viewIds != null) |
| 690 |
openedViewIds.put(perspId, viewIds); |
| 691 |
|
| 690 |
saveOpenedViews(); |
692 |
saveOpenedViews(); |
| 691 |
|
693 |
|
| 692 |
// reset if this setting is previously changed |
694 |
// reset if this setting is previously changed |
|
Lines 707-713
Link Here
|
| 707 |
Set viewIdsToKeepOpen= getViewIdsForEnabledContexts(); |
709 |
Set viewIdsToKeepOpen= getViewIdsForEnabledContexts(); |
| 708 |
Iterator contexts = contextIds.iterator(); |
710 |
Iterator contexts = contextIds.iterator(); |
| 709 |
String currentPerspId = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getPerspective().getId(); |
711 |
String currentPerspId = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getPerspective().getId(); |
| 710 |
ArrayList viewIds = (ArrayList)openedViewIds.get(currentPerspId); |
712 |
Set viewIds = (Set)openedViewIds.get(currentPerspId); |
| 711 |
while (contexts.hasNext()) { |
713 |
while (contexts.hasNext()) { |
| 712 |
String contextId = (String) contexts.next(); |
714 |
String contextId = (String) contexts.next(); |
| 713 |
List list = getConfigurationElements(contextId); |
715 |
List list = getConfigurationElements(contextId); |
|
Lines 1094-1105
Link Here
|
| 1094 |
{ |
1096 |
{ |
| 1095 |
String perspId = (String)keys.next(); |
1097 |
String perspId = (String)keys.next(); |
| 1096 |
|
1098 |
|
| 1097 |
ArrayList views = (ArrayList)openedViewIds.get(perspId); |
1099 |
Set views = (Set)openedViewIds.get(perspId); |
| 1098 |
if (views != null && views.contains(viewId)) |
1100 |
if (views != null && views.contains(viewId)) |
| 1099 |
{ |
1101 |
{ |
| 1100 |
views.remove(viewId); |
1102 |
views.remove(viewId); |
| 1101 |
openedViewIds.put(perspId, views); |
|
|
| 1102 |
} |
1103 |
} |
|
|
1104 |
|
| 1105 |
if (views != null) |
| 1106 |
openedViewIds.put(perspId, views); |
| 1103 |
} |
1107 |
} |
| 1104 |
} |
1108 |
} |
| 1105 |
|
1109 |
|