|
Lines 147-177
Link Here
|
| 147 |
|
147 |
|
| 148 |
if (element instanceof MPlaceholder) { |
148 |
if (element instanceof MPlaceholder) { |
| 149 |
MPlaceholder ph = (MPlaceholder) element; |
149 |
MPlaceholder ph = (MPlaceholder) element; |
| 150 |
MUIElement ref = ph.getRef(); |
150 |
element = ph.getRef(); |
| 151 |
if (ref instanceof MPart && ph.getParent() != null |
|
|
| 152 |
&& ph.getParent().getWidget() instanceof CTabFolder) { |
| 153 |
// Reparent the existing Toolbar |
| 154 |
MPart part = (MPart) ref; |
| 155 |
CTabFolder ctf = (CTabFolder) ph.getParent().getWidget(); |
| 156 |
IPresentationEngine renderer = part.getContext().get( |
| 157 |
IPresentationEngine.class); |
| 158 |
|
| 159 |
// Dispose the existing toolbar |
| 160 |
if (ctf.getTopRight() != null) { |
| 161 |
Control curTB = ctf.getTopRight(); |
| 162 |
ctf.setTopRight(null); |
| 163 |
if (!curTB.isDisposed()) { |
| 164 |
MUIElement tbME = (MUIElement) curTB |
| 165 |
.getData(AbstractPartRenderer.OWNING_ME); |
| 166 |
if (tbME instanceof MToolBar) |
| 167 |
renderer.removeGui(tbME); |
| 168 |
else |
| 169 |
curTB.dispose(); |
| 170 |
} |
| 171 |
} |
| 172 |
} |
| 173 |
|
| 174 |
element = ((MPlaceholder) element).getRef(); |
| 175 |
} |
151 |
} |
| 176 |
|
152 |
|
| 177 |
// Hide any floating windows |
153 |
// Hide any floating windows |
|
Lines 210-250
Link Here
|
| 210 |
if (!element.isToBeRendered()) |
186 |
if (!element.isToBeRendered()) |
| 211 |
return; |
187 |
return; |
| 212 |
|
188 |
|
| 213 |
if (element instanceof MPlaceholder && element.getWidget() != null) { |
189 |
if (element instanceof MPlaceholder) { |
| 214 |
MPlaceholder ph = (MPlaceholder) element; |
190 |
MPlaceholder ph = (MPlaceholder) element; |
| 215 |
MUIElement ref = ph.getRef(); |
191 |
MUIElement ref = ph.getRef(); |
| 216 |
ref.setCurSharedRef(ph); |
192 |
ref.setCurSharedRef(ph); |
| 217 |
|
193 |
|
| 218 |
Composite phComp = (Composite) ph.getWidget(); |
194 |
Composite phComp = (Composite) ph.getWidget(); |
| 219 |
Control refCtrl = (Control) ph.getRef().getWidget(); |
195 |
if (phComp != null) { |
| 220 |
refCtrl.setParent(phComp); |
196 |
Control refCtrl = (Control) ph.getRef().getWidget(); |
| 221 |
phComp.layout(new Control[] { refCtrl }, SWT.DEFER); |
197 |
refCtrl.setParent(phComp); |
|
|
198 |
phComp.layout(new Control[] { refCtrl }, SWT.DEFER); |
| 199 |
} |
| 222 |
|
200 |
|
| 223 |
if (ref instanceof MPart |
201 |
if (ref instanceof MPart |
| 224 |
&& ph.getParent().getWidget() instanceof CTabFolder) { |
202 |
&& ph.getParent().getWidget() instanceof CTabFolder) { |
| 225 |
// Reparent the existing Toolbar |
203 |
// Reparent the existing Toolbar |
| 226 |
MPart part = (MPart) ref; |
204 |
MPart part = (MPart) ref; |
|
|
205 |
MToolBar tbModel = part.getToolbar(); |
| 206 |
boolean same = false; |
| 227 |
CTabFolder ctf = (CTabFolder) ph.getParent().getWidget(); |
207 |
CTabFolder ctf = (CTabFolder) ph.getParent().getWidget(); |
| 228 |
IPresentationEngine renderer = modelService |
208 |
IPresentationEngine renderer = modelService |
| 229 |
.getContainingContext(ph) |
209 |
.getContainingContext(ph) |
| 230 |
.get(IPresentationEngine.class); |
210 |
.get(IPresentationEngine.class); |
| 231 |
|
211 |
|
|
|
212 |
if (tbModel != null) { |
| 213 |
tbModel.setVisible(true); |
| 214 |
} |
| 215 |
|
| 232 |
// Dispose the existing toolbar |
216 |
// Dispose the existing toolbar |
| 233 |
if (ctf.getTopRight() != null) { |
217 |
if (ctf.getTopRight() != null) { |
| 234 |
Control curTB = ctf.getTopRight(); |
218 |
Control curTB = ctf.getTopRight(); |
| 235 |
ctf.setTopRight(null); |
219 |
if (tbModel != null && curTB == tbModel.getWidget()) { |
| 236 |
if (!curTB.isDisposed()) { |
220 |
same = true; |
| 237 |
MUIElement tbME = (MUIElement) curTB |
221 |
} else { |
| 238 |
.getData(AbstractPartRenderer.OWNING_ME); |
222 |
ctf.setTopRight(null); |
| 239 |
if (tbME instanceof MToolBar) |
223 |
if (!curTB.isDisposed()) { |
| 240 |
renderer.removeGui(tbME); |
224 |
MUIElement tbME = (MUIElement) curTB |
| 241 |
else |
225 |
.getData(AbstractPartRenderer.OWNING_ME); |
| 242 |
curTB.dispose(); |
226 |
if (tbME instanceof MToolBar) |
|
|
227 |
renderer.removeGui(tbME); |
| 228 |
else |
| 229 |
curTB.dispose(); |
| 230 |
} |
| 243 |
} |
231 |
} |
| 244 |
} |
232 |
} |
| 245 |
|
233 |
|
| 246 |
MToolBar tbModel = part.getToolbar(); |
234 |
if (!same && tbModel != null && ref.getRenderer() != null) { |
| 247 |
if (tbModel != null) { |
|
|
| 248 |
Control c = (Control) renderer.createGui(tbModel, ctf, |
235 |
Control c = (Control) renderer.createGui(tbModel, ctf, |
| 249 |
part.getContext()); |
236 |
part.getContext()); |
| 250 |
ctf.setTopRight(c, SWT.RIGHT | SWT.WRAP); |
237 |
ctf.setTopRight(c, SWT.RIGHT | SWT.WRAP); |