|
Lines 51-56
Link Here
|
| 51 |
private Composite parentWidget; |
51 |
private Composite parentWidget; |
| 52 |
|
52 |
|
| 53 |
private LayoutPart zoomedPart; |
53 |
private LayoutPart zoomedPart; |
|
|
54 |
|
| 55 |
// 'Smart' zoom |
| 56 |
private boolean smartZoomed = false; |
| 57 |
private EditorSashContainer smartHiddenEditor = null; |
| 54 |
|
58 |
|
| 55 |
protected WorkbenchPage page; |
59 |
protected WorkbenchPage page; |
| 56 |
|
60 |
|
|
Lines 846-851
Link Here
|
| 846 |
this.parent.setBounds(r); |
850 |
this.parent.setBounds(r); |
| 847 |
} |
851 |
} |
| 848 |
|
852 |
|
|
|
853 |
private void smartZoomIn(LayoutPart part, Perspective persp) { |
| 854 |
// HACK!! since we aren't changing the 'state' maximize always |
| 855 |
// get called; 'unzoom' if necessary |
| 856 |
if (smartZoomed) { |
| 857 |
// Restore the editor area if necessary |
| 858 |
if (smartHiddenEditor != null) |
| 859 |
smartHiddenEditor.setVisible(true); |
| 860 |
|
| 861 |
// Restore (close) and groups created during a zoom |
| 862 |
persp.restoreZoomGroups(); |
| 863 |
|
| 864 |
// we're 'unzoomed' |
| 865 |
smartZoomed = false; |
| 866 |
|
| 867 |
// Remember that we need to trigger a layout |
| 868 |
layoutDirty = true; |
| 869 |
|
| 870 |
return; |
| 871 |
} |
| 872 |
|
| 873 |
// 'Smart'(?) zoom...'minimize' all view stacks except the |
| 874 |
// one we're zooming. If we're zooming the editor then -all- |
| 875 |
// view stacks get minimized |
| 876 |
LayoutPart[] children = getChildren(); |
| 877 |
for (int i = 0; i < children.length; i++) { |
| 878 |
LayoutPart child = children[i]; |
| 879 |
// Close the editor stack unless it's the 'zooming' part |
| 880 |
if (child instanceof EditorSashContainer && child != part) { |
| 881 |
child.setVisible(false); |
| 882 |
|
| 883 |
// Remember it so we can restore it |
| 884 |
smartHiddenEditor = (EditorSashContainer) child; |
| 885 |
} |
| 886 |
else if (child instanceof ViewStack) { |
| 887 |
if (child != part) { |
| 888 |
persp.moveToTrim((ViewStack) child, |
| 889 |
FastViewBar.GROUP_FVB | FastViewBar.ZOOM_GROUP); |
| 890 |
} |
| 891 |
} |
| 892 |
} |
| 893 |
|
| 894 |
// We're -not- really zoomed, don't lie |
| 895 |
zoomedPart = null; |
| 896 |
// ...but we're 'zoomed' |
| 897 |
smartZoomed = true; |
| 898 |
|
| 899 |
// Remember that we need to trigger a layout |
| 900 |
layoutDirty = true; |
| 901 |
} |
| 902 |
|
| 849 |
/** |
903 |
/** |
| 850 |
* Zoom in on a particular layout part. |
904 |
* Zoom in on a particular layout part. |
| 851 |
* |
905 |
* |
|
Lines 857-882
Link Here
|
| 857 |
* Note: Method assumes we are active. |
911 |
* Note: Method assumes we are active. |
| 858 |
*/ |
912 |
*/ |
| 859 |
private void zoomIn(LayoutPart part) { |
913 |
private void zoomIn(LayoutPart part) { |
|
|
914 |
// 'Smart'? maximize |
| 915 |
Perspective persp = this.getPage().getActivePerspective(); |
| 916 |
boolean useMultiFVB = (persp != null) && (System.getProperty("MultiFVB") != null); //$NON-NLS-1$ |
| 917 |
if (useMultiFVB) { |
| 918 |
smartZoomIn(part, persp); |
| 919 |
return; |
| 920 |
} |
| 921 |
|
| 860 |
// Sanity check. |
922 |
// Sanity check. |
| 861 |
if (isZoomed()) { |
923 |
if (isZoomed()) { |
| 862 |
return; |
924 |
return; |
| 863 |
} |
925 |
} |
| 864 |
|
926 |
|
| 865 |
// Hide the sashes |
927 |
// Hide the sashes |
| 866 |
root.disposeSashes(); |
928 |
root.disposeSashes(); |
| 867 |
|
929 |
|
| 868 |
// Make all parts invisible except for the zoomed part |
930 |
// Make all parts invisible except for the zoomed part |
| 869 |
LayoutPart[] children = getChildren(); |
931 |
LayoutPart[] children = getChildren(); |
| 870 |
for (int i = 0; i < children.length; i++) { |
932 |
for (int i = 0; i < children.length; i++) { |
| 871 |
LayoutPart child = children[i]; |
933 |
LayoutPart child = children[i]; |
| 872 |
|
|
|
| 873 |
child.setVisible(child == part); |
934 |
child.setVisible(child == part); |
| 874 |
} |
935 |
} |
| 875 |
|
936 |
|
| 876 |
zoomedPart = part; |
937 |
zoomedPart = part; |
| 877 |
|
938 |
|
| 878 |
// Notify the part that it has been zoomed |
939 |
// Notify the part that it has been zoomed |
| 879 |
part.setZoomed(true); |
940 |
part.setZoomed(true); |
| 880 |
|
941 |
|
| 881 |
// Remember that we need to trigger a layout |
942 |
// Remember that we need to trigger a layout |
| 882 |
layoutDirty = true; |
943 |
layoutDirty = true; |