|
Re: draw2d interaction sequence [message #644389 is a reply to message #643362] |
Fri, 10 December 2010 19:27 |
|
Hi Carlo,
I don't have the book at hand (and I cannot use the attached image), but in short:
a) with repaint() a figure can query that it needs to repaint inside its bounds. What happens is that the figure notifies the update manager that the figure's bounds should be regarded as a dirty region. The update manager then schedules a paint() on the figure.
b) invalidate(), revalidate() and validate() all refer to layouting (with revalidate() a figure can query that it needs to get re-layouted, i.e. obtain new bounds) and will - as a side effect - also issue a repaint.
I think you should take a look into the Programmer's Guide of the GEF and Draw2d Plug-in Developer Guide, which can be found e.g. under http://help.eclipse.org/helios/index.jsp. The Draw2d sections about Painting and Layout may help to clarify your questions.
|
|
|
Re: draw2d interaction sequence [message #644469 is a reply to message #644389] |
Sat, 11 December 2010 18:20 |
Carlo Salinari Messages: 66 Registered: October 2010 |
Member |
|
|
This is a multi-part message in MIME format.
--------------060305030603080608080807
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On 12/10/2010 8:27 PM, Alexander Nyßen wrote:
> Hi Carlo,
>
> I don't have the book at hand (and I cannot use the attached image), but in short:
>
> a) with repaint() a figure can query that it needs to repaint inside its bounds. What happens is that the figure notifies the update manager that the figure's bounds should be regarded as a dirty region. The update manager then schedules a paint() on the figure.
>
> b) invalidate(), revalidate() and validate() all refer to layouting (with revalidate() a figure can query that it needs to get re-layouted, i.e. obtain new bounds) and will - as a side effect - also issue a repaint.
>
> I think you should take a look into the Programmer's Guide of the GEF and Draw2d Plug-in Developer Guide, which can be found e.g. under http://help.eclipse.org/helios/index.jsp The Draw2d sections about Painting and Layout may help to clarify your questions.
>
I've instrumented a small code snippet to show the methods called during
the interaction.
This is obtained by substituting the Figure and ContentRoot instances
with proxyes that trace every method call.
The result is interesting (see attachment) but unfortunately the program
halts in ClickableEventHandler.focusGained
public void focusGained(FocusEvent fe) {
Clickable clickable = (Clickable) fe.gainer;
clickable.repaint();
}
because of the cast to Clickable (a proxy can't be cast to a class).
Now, to my understanding, the cast here is useless since fe.gainer
already is an IFigure, so the method should read:
public void focusGained(FocusEvent fe) {
fe.gainer.repaint();
}
without forcing a concrete type on fe.gainer (and allowing tracing).
Do you think this is worth an entry in bugzilla?
--------------060305030603080608080807
Content-Type: text/plain;
name="result.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="result.txt"
ZmlndXJlLmdldFBhcmVudCguLi4pIGNhbGxlZA0KZmlndXJlLmdldFBhcmVu dCByZXR1cm5z
DQpmaWd1cmUuc2V0UGFyZW50KC4uLikgY2FsbGVkDQpmaWd1cmUuc2V0UGFy ZW50IHJldHVy
bnMNCmZpZ3VyZS5yZXBhaW50KC4uLikgY2FsbGVkDQpmaWd1cmUucmVwYWlu dCByZXR1cm5z
DQpjb250ZW50Um9vdC5nZXRQYXJlbnQoLi4uKSBjYWxsZWQNCmNvbnRlbnRS b290LmdldFBh
cmVudCByZXR1cm5zDQpjb250ZW50Um9vdC5zZXRQYXJlbnQoLi4uKSBjYWxs ZWQNCmNvbnRl
bnRSb290LnNldFBhcmVudCByZXR1cm5zDQpjb250ZW50Um9vdC5hZGROb3Rp ZnkoLi4uKSBj
YWxsZWQNCmZpZ3VyZS5hZGROb3RpZnkoLi4uKSBjYWxsZWQNCmZpZ3VyZS5h ZGROb3RpZnkg
cmV0dXJucw0KY29udGVudFJvb3QuYWRkTm90aWZ5IHJldHVybnMNCmNvbnRl bnRSb290LnJl
cGFpbnQoLi4uKSBjYWxsZWQNCmNvbnRlbnRSb290LnJlcGFpbnQgcmV0dXJu cw0KY29udGVu
dFJvb3Quc2V0Qm91bmRzKC4uLikgY2FsbGVkDQpjb250ZW50Um9vdC5zZXRC b3VuZHMgcmV0
dXJucw0KY29udGVudFJvb3QudmFsaWRhdGUoLi4uKSBjYWxsZWQNCmZpZ3Vy ZS5nZXRQcmVm
ZXJyZWRTaXplKC4uLikgY2FsbGVkDQpmaWd1cmUuZ2V0UHJlZmVycmVkU2l6 ZSByZXR1cm5z
DQpmaWd1cmUuc2V0Qm91bmRzKC4uLikgY2FsbGVkDQpmaWd1cmUuc2V0Qm91 bmRzIHJldHVy
bnMNCmZpZ3VyZS52YWxpZGF0ZSguLi4pIGNhbGxlZA0KZmlndXJlLnZhbGlk YXRlIHJldHVy
bnMNCmNvbnRlbnRSb290LnZhbGlkYXRlIHJldHVybnMNCmNvbnRlbnRSb290 LmlzVmlzaWJs
ZSguLi4pIGNhbGxlZA0KY29udGVudFJvb3QuaXNWaXNpYmxlIHJldHVybnMN CmNvbnRlbnRS
b290LmdldEJvdW5kcyguLi4pIGNhbGxlZA0KY29udGVudFJvb3QuZ2V0Qm91 bmRzIHJldHVy
bnMNCmNvbnRlbnRSb290LnBhaW50KC4uLikgY2FsbGVkDQpmaWd1cmUuaXNW aXNpYmxlKC4u
LikgY2FsbGVkDQpmaWd1cmUuaXNWaXNpYmxlIHJldHVybnMNCmZpZ3VyZS5n ZXRCb3VuZHMo
Li4uKSBjYWxsZWQNCmZpZ3VyZS5nZXRCb3VuZHMgcmV0dXJucw0KZmlndXJl LnBhaW50KC4u
LikgY2FsbGVkDQpmaWd1cmUucGFpbnQgcmV0dXJucw0KY29udGVudFJvb3Qu cGFpbnQgcmV0
dXJucw0KY29udGVudFJvb3QuaXNWaXNpYmxlKC4uLikgY2FsbGVkDQpjb250 ZW50Um9vdC5p
c1Zpc2libGUgcmV0dXJucw0KY29udGVudFJvb3QuZ2V0Qm91bmRzKC4uLikg Y2FsbGVkDQpj
b250ZW50Um9vdC5nZXRCb3VuZHMgcmV0dXJucw0KY29udGVudFJvb3QucGFp bnQoLi4uKSBj
YWxsZWQNCmZpZ3VyZS5pc1Zpc2libGUoLi4uKSBjYWxsZWQNCmZpZ3VyZS5p c1Zpc2libGUg
cmV0dXJucw0KZmlndXJlLmdldEJvdW5kcyguLi4pIGNhbGxlZA0KZmlndXJl LmdldEJvdW5k
cyByZXR1cm5zDQpmaWd1cmUucGFpbnQoLi4uKSBjYWxsZWQNCmZpZ3VyZS5w YWludCByZXR1
cm5zDQpjb250ZW50Um9vdC5wYWludCByZXR1cm5zDQpjb250ZW50Um9vdC5p c0ZvY3VzVHJh
dmVyc2FibGUoLi4uKSBjYWxsZWQNCmNvbnRlbnRSb290LmlzRm9jdXNUcmF2 ZXJzYWJsZSBy
ZXR1cm5zDQpjb250ZW50Um9vdC5nZXRQYXJlbnQoLi4uKSBjYWxsZWQNCmNv bnRlbnRSb290
LmdldFBhcmVudCByZXR1cm5zDQpjb250ZW50Um9vdC5lcXVhbHMoLi4uKSBj YWxsZWQNCmNv
bnRlbnRSb290LmVxdWFscyByZXR1cm5zDQpjb250ZW50Um9vdC5nZXRQYXJl bnQoLi4uKSBj
YWxsZWQNCmNvbnRlbnRSb290LmdldFBhcmVudCByZXR1cm5zDQpjb250ZW50 Um9vdC5nZXRD
aGlsZHJlbiguLi4pIGNhbGxlZA0KY29udGVudFJvb3QuZ2V0Q2hpbGRyZW4g cmV0dXJucw0K
Y29udGVudFJvb3QuZ2V0Q2hpbGRyZW4oLi4uKSBjYWxsZWQNCmNvbnRlbnRS b290LmdldENo
aWxkcmVuIHJldHVybnMNCmZpZ3VyZS5pc0ZvY3VzVHJhdmVyc2FibGUoLi4u KSBjYWxsZWQN
CmZpZ3VyZS5pc0ZvY3VzVHJhdmVyc2FibGUgcmV0dXJucw0KZmlndXJlLmlz U2hvd2luZygu
Li4pIGNhbGxlZA0KZmlndXJlLmlzU2hvd2luZyByZXR1cm5zDQpmaWd1cmUu aGFuZGxlRm9j
dXNHYWluZWQoLi4uKSBjYWxsZWQNCmZpZ3VyZS5oYW5kbGVGb2N1c0dhaW5l ZCB0aHJvd3Mg
amF2YS5sYW5nLkNsYXNzQ2FzdEV4Y2VwdGlvbjogJFByb3h5MCBjYW5ub3Qg YmUgY2FzdCB0
byBvcmcuZWNsaXBzZS5kcmF3MmQuQ2xpY2thYmxlDQpFeGNlcHRpb24gaW4g dGhyZWFkICJt
YWluIiBqYXZhLmxhbmcuQ2xhc3NDYXN0RXhjZXB0aW9uOiAkUHJveHkwIGNh bm5vdCBiZSBj
YXN0IHRvIG9yZy5lY2xpcHNlLmRyYXcyZC5DbGlja2FibGUNCglhdCBvcmcu ZWNsaXBzZS5k
cmF3MmQuQ2xpY2thYmxlRXZlbnRIYW5kbGVyLmZvY3VzR2FpbmVkKENsaWNr YWJsZUV2ZW50
SGFuZGxlci5qYXZhOjI3KQ0KCWF0IG9yZy5lY2xpcHNlLmRyYXcyZC5GaWd1 cmUuaGFuZGxl
Rm9jdXNHYWluZWQoRmlndXJlLmphdmE6ODQ1KQ0KCWF0IHN1bi5yZWZsZWN0 Lk5hdGl2ZU1l
dGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpDQoJYXQg c3VuLnJlZmxl
Y3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRo b2RBY2Nlc3Nv
ckltcGwuamF2YTozOSkNCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0 aG9kQWNjZXNz
b3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmph dmE6MjUpDQoJ
YXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2 YTo1OTcpDQoJ
YXQgc25pcHBldHMuVHJhY2luZy5pbnZva2UoVHJhY2luZy5qYXZhOjc2KQ0K CWF0ICRQcm94
eTAuaGFuZGxlRm9jdXNHYWluZWQoVW5rbm93biBTb3VyY2UpDQoJYXQgb3Jn LmVjbGlwc2Uu
ZHJhdzJkLlNXVEV2ZW50RGlzcGF0Y2hlci5zZXRGb2N1cyhTV1RFdmVudERp c3BhdGNoZXIu
amF2YTo1MTMpDQoJYXQgb3JnLmVjbGlwc2UuZHJhdzJkLlNXVEV2ZW50RGlz cGF0Y2hlci5k
aXNwYXRjaEZvY3VzR2FpbmVkKFNXVEV2ZW50RGlzcGF0Y2hlci5qYXZhOjEz MykNCglhdCBv
cmcuZWNsaXBzZS5kcmF3MmQuTGlnaHR3ZWlnaHRTeXN0ZW0kRXZlbnRIYW5k bGVyLmZvY3Vz
R2FpbmVkKExpZ2h0d2VpZ2h0U3lzdGVtLmphdmE6MzU3KQ0KCWF0IG9yZy5l Y2xpcHNlLnN3
dC53aWRnZXRzLlR5cGVkTGlzdGVuZXIuaGFuZGxlRXZlbnQoVHlwZWRMaXN0 ZW5lci5qYXZh
OjEzOSkNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5FdmVudFRhYmxl LnNlbmRFdmVu
dChFdmVudFRhYmxlLmphdmE6ODQpDQoJYXQgb3JnLmVjbGlwc2Uuc3d0Lndp ZGdldHMuV2lk
Z2V0LnNlbmRFdmVudChXaWRnZXQuamF2YToxMDUzKQ0KCWF0IG9yZy5lY2xp cHNlLnN3dC53
aWRnZXRzLldpZGdldC5zZW5kRXZlbnQoV2lkZ2V0LmphdmE6MTA3NykNCglh dCBvcmcuZWNs
aXBzZS5zd3Qud2lkZ2V0cy5XaWRnZXQuc2VuZEV2ZW50KFdpZGdldC5qYXZh OjEwNTgpDQoJ
YXQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29udHJvbC5zZW5kRm9jdXNF dmVudChDb250
cm9sLmphdmE6MjYxOCkNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5X aWRnZXQud21T
ZXRGb2N1cyhXaWRnZXQuamF2YToyNDAyKQ0KCWF0IG9yZy5lY2xpcHNlLnN3 dC53aWRnZXRz
LkNvbnRyb2wuV01fU0VURk9DVVMoQ29udHJvbC5qYXZhOjQ3OTIpDQoJYXQg b3JnLmVjbGlw
c2Uuc3d0LndpZGdldHMuQ2FudmFzLldNX1NFVEZPQ1VTKENhbnZhcy5qYXZh OjQ0OCkNCglh
dCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLndpbmRvd1Byb2Mo Q29udHJvbC5q
YXZhOjQyMjkpDQoJYXQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ2FudmFz LndpbmRvd1By
b2MoQ2FudmFzLmphdmE6MzQxKQ0KCWF0IG9yZy5lY2xpcHNlLnN3dC53aWRn ZXRzLkRpc3Bs
YXkud2luZG93UHJvYyhEaXNwbGF5LmphdmE6NDg3MykNCglhdCBvcmcuZWNs aXBzZS5zd3Qu
aW50ZXJuYWwud2luMzIuT1MuU2V0Rm9jdXMoTmF0aXZlIE1ldGhvZCkNCglh dCBvcmcuZWNs
aXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLmZvcmNlRm9jdXMoQ29udHJvbC5q YXZhOjk5NSkN
CglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLnNldFRhYkl0 ZW1Gb2N1cyhD
b250cm9sLmphdmE6MzMyMCkNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0 cy5Db21wb3Np
dGUuc2V0VGFiR3JvdXBGb2N1cyhDb21wb3NpdGUuamF2YToxMTU3KQ0KCWF0 IG9yZy5lY2xp
cHNlLnN3dC53aWRnZXRzLkNvbnRyb2wudHJhdmVyc2VHcm91cChDb250cm9s LmphdmE6Mzkz
NikNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5TaGVsbC5vcGVuKFNo ZWxsLmphdmE6
MTIyNSkNCglhdCBzbmlwcGV0cy5TbmlwcGV0MS5tYWluKFNuaXBwZXQxLmph dmE6MzQp
--------------060305030603080608080807
Content-Type: text/plain;
name="Snippet1.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Snippet1.java"
cGFja2FnZSBzbmlwcGV0czsNCg0KaW1wb3J0IG9yZy5lY2xpcHNlLmRyYXcy ZC5CdXR0b247
DQppbXBvcnQgb3JnLmVjbGlwc2UuZHJhdzJkLkZpZ3VyZTsNCmltcG9ydCBv cmcuZWNsaXBz
ZS5kcmF3MmQuRmxvd0xheW91dDsNCmltcG9ydCBvcmcuZWNsaXBzZS5kcmF3 MmQuSUZpZ3Vy
ZTsNCmltcG9ydCBvcmcuZWNsaXBzZS5kcmF3MmQuTGlnaHR3ZWlnaHRTeXN0 ZW07DQppbXBv
cnQgb3JnLmVjbGlwc2Uuc3d0LlNXVDsNCmltcG9ydCBvcmcuZWNsaXBzZS5z d3QubGF5b3V0
LkZpbGxMYXlvdXQ7DQppbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMu Q2FudmFzOw0K
aW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkRpc3BsYXk7DQppbXBv cnQgb3JnLmVj
bGlwc2Uuc3d0LndpZGdldHMuU2hlbGw7DQoNCnB1YmxpYyBjbGFzcyBTbmlw cGV0MSBleHRl
bmRzIFNoZWxsIHsNCg0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmlu ZyBhcmdzW10p
IHsNCgkJRGlzcGxheSBkID0gbmV3IERpc3BsYXkoKTsNCgkJU2hlbGwgc2hl bGwgPSBuZXcg
U2hlbGwoZCk7DQoJCXNoZWxsLnNldExheW91dChuZXcgRmlsbExheW91dCgp KTsNCg0KCQlD
YW52YXMgY2FudmFzID0gbmV3IENhbnZhcyhzaGVsbCwgU1dULk5PTkUpOw0K CQlMaWdodHdl
aWdodFN5c3RlbSBsd3MgPSBuZXcgTGlnaHR3ZWlnaHRTeXN0ZW0oY2FudmFz KTsNCg0KCQlJ
RmlndXJlIGNvbnRlbnRSb290ID0gbmV3IEZpZ3VyZSgpOw0KCQljb250ZW50 Um9vdC5zZXRM
YXlvdXRNYW5hZ2VyKG5ldyBGbG93TGF5b3V0KCkpOw0KDQoJCUlGaWd1cmUg ZmlndXJlID0g
bmV3IEJ1dHRvbigiY2xpY2sgbWUiKTsNCg0KCQljb250ZW50Um9vdC5hZGQo KElGaWd1cmUp
IFRyYWNpbmcudHJhY2UoImZpZ3VyZSIsIGZpZ3VyZSkpOw0KDQoJCWx3cy5z ZXRDb250ZW50
cygoSUZpZ3VyZSkgVHJhY2luZy50cmFjZSgiY29udGVudFJvb3QiLCBjb250 ZW50Um9vdCkp
Ow0KDQoJCXNoZWxsLnNldFRleHQoImRyYXcyZCIpOw0KCQlzaGVsbC5vcGVu KCk7DQoNCgkJ
d2hpbGUgKCFzaGVsbC5pc0Rpc3Bvc2VkKCkpDQoJCQl3aGlsZSAoIWQucmVh ZEFuZERpc3Bh
dGNoKCkpDQoJCQkJZC5zbGVlcCgpOw0KCX0NCn0=
--------------060305030603080608080807
Content-Type: text/plain;
name="Tracing.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Tracing.java"
cGFja2FnZSBzbmlwcGV0czsNCg0KaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0 ZXI7DQppbXBv
cnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvbkhhbmRsZXI7DQppbXBv cnQgamF2YS5s
YW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsNCmltcG9y dCBqYXZhLmxh
bmcucmVmbGVjdC5NZXRob2Q7DQppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3Qu UHJveHk7DQpp
bXBvcnQgamF2YS51dGlsLkFycmF5czsNCmltcG9ydCBqYXZhLnV0aWwuQ29s bGVjdGlvbnM7
DQppbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7DQppbXBvcnQgamF2YS51dGls LlNldDsNCg0K
cHVibGljIGNsYXNzIFRyYWNpbmcgaW1wbGVtZW50cyBJbnZvY2F0aW9uSGFu ZGxlciB7DQoN
CglwdWJsaWMgc3RhdGljIE9iamVjdCBjcmVhdGVQcm94eShPYmplY3Qgb2Jq KSB7DQoJCXJl
dHVybiBjcmVhdGVQcm94eSgiIiwgb2JqLCBuZXcgUHJpbnRXcml0ZXIoU3lz dGVtLm91dCwg
dHJ1ZSkpOw0KCX0NCg0KCXB1YmxpYyBzdGF0aWMgT2JqZWN0IGNyZWF0ZVBy b3h5KFN0cmlu
ZyBvYmpOYW1lLCBPYmplY3Qgb2JqKSB7DQoJCXJldHVybiBjcmVhdGVQcm94 eShvYmpOYW1l
LCBvYmosIG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0LCB0cnVlKSk7DQoJ fQ0KDQoJcHVi
bGljIHN0YXRpYyBPYmplY3QgY3JlYXRlUHJveHkoU3RyaW5nIG9iak5hbWUs IE9iamVjdCBv
YmosIFByaW50V3JpdGVyIG91dCkgew0KCQlyZXR1cm4gUHJveHkubmV3UHJv eHlJbnN0YW5j
ZShvYmouZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpLA0KCQkJCWdldE9i akludGVyZmFj
ZXMob2JqKSwgbmV3IFRyYWNpbmcob2JqTmFtZSwgb2JqLCBvdXQpKTsNCgl9 DQoNCglwdWJs
aWMgc3RhdGljIFNldDxDbGFzczw/Pj4gZ2V0SW50ZXJmYWNlcyhDbGFzczw/ PiBjKSB7DQoJ
CWlmIChjID09IG51bGwpIHsNCgkJCXJldHVybiBDb2xsZWN0aW9ucy5lbXB0 eVNldCgpOw0K
CQl9DQoJCVNldDxDbGFzczw/Pj4gaW50ZXJmYWNlcyA9IG5ldyBIYXNoU2V0 PENsYXNzPD8+
PigpOw0KCQlpbnRlcmZhY2VzLmFkZEFsbChBcnJheXMuYXNMaXN0KGMuZ2V0 SW50ZXJmYWNl
cygpKSk7DQoJCWludGVyZmFjZXMuYWRkQWxsKGdldEludGVyZmFjZXMoYy5n ZXRTdXBlcmNs
YXNzKCkpKTsNCgkJcmV0dXJuIGludGVyZmFjZXM7DQoJfQ0KDQoJcHVibGlj IHN0YXRpYyBD
bGFzczw/PltdIGdldE9iakludGVyZmFjZXMoT2JqZWN0IG9iaikgew0KCQly ZXR1cm4gZ2V0
SW50ZXJmYWNlcyhvYmouZ2V0Q2xhc3MoKSkudG9BcnJheShuZXcgQ2xhc3Nb MF0pOw0KCX0N
Cg0KCXB1YmxpYyBzdGF0aWMgT2JqZWN0IHRyYWNlKE9iamVjdCBvYmopIHsN CgkJcmV0dXJu
IGNyZWF0ZVByb3h5KG9iaik7DQoJfQ0KCQ0KCS8qKiByZXR1cm5zIGEgcHJv eHkgdGhhdCBk
dW1wcyBldmVyeSBtZXRob2QgY2FsbCB0byBTeXN0ZW0ub3V0ICoqLw0KCXB1 YmxpYyBzdGF0
aWMgT2JqZWN0IHRyYWNlKFN0cmluZyBvYmpOYW1lLCBPYmplY3Qgb2JqKSB7 DQoJCXJldHVy
biBjcmVhdGVQcm94eShvYmpOYW1lLCBvYmopOw0KCX0NCg0KCXByaXZhdGUg T2JqZWN0IHRh
cmdldDsNCglwcml2YXRlIFByaW50V3JpdGVyIG91dDsNCglwcml2YXRlIFN0 cmluZyBvYmpO
YW1lOw0KDQoJcHJpdmF0ZSBUcmFjaW5nKFN0cmluZyBvYmpOYW1lLCBPYmpl Y3Qgb2JqLCBQ
cmludFdyaXRlciBvdXQpIHsNCgkJdGhpcy5vYmpOYW1lID0gb2JqTmFtZTsN CgkJdGFyZ2V0
ID0gb2JqOw0KCQl0aGlzLm91dCA9IG91dDsNCgl9DQoNCglwdWJsaWMgT2Jq ZWN0IGFzKFN0
cmluZyBvYmpOYW1lKSB7DQoJCXNldE9iak5hbWUob2JqTmFtZSk7DQoJCXJl dHVybiB0aGlz
Ow0KCX0NCg0KCXB1YmxpYyB2b2lkIHNldE9iak5hbWUoU3RyaW5nIG9iak5h bWUpIHsNCgkJ
dGhpcy5vYmpOYW1lID0gb2JqTmFtZTsNCgl9DQoNCglAT3ZlcnJpZGUNCglw dWJsaWMgT2Jq
ZWN0IGludm9rZShPYmplY3QgcHJveHksIE1ldGhvZCBtZXRob2QsIE9iamVj dFtdIGFyZ3Mp
DQoJCQl0aHJvd3MgVGhyb3dhYmxlIHsNCgkJT2JqZWN0IHJlc3VsdCA9IG51 bGw7DQoJCXRy
eSB7DQoJCQlvdXQucHJpbnRsbihvYmpOYW1lICsgIi4iICsgbWV0aG9kLmdl dE5hbWUoKSAr
ICIoLi4uKSBjYWxsZWQiKTsNCgkJCXJlc3VsdCA9IG1ldGhvZC5pbnZva2Uo dGFyZ2V0LCBh
cmdzKTsNCgkJfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBl KSB7DQoJCQlv
dXQucHJpbnRsbihvYmpOYW1lICsgIi4iICsgbWV0aG9kLmdldE5hbWUoKSAr ICIgdGhyb3dz
ICINCgkJCQkJKyBlLmdldENhdXNlKCkpOw0KCQkJdGhyb3cgZS5nZXRDYXVz ZSgpOw0KCQl9
DQoJCW91dC5wcmludGxuKG9iak5hbWUgKyAiLiIgKyBtZXRob2QuZ2V0TmFt ZSgpICsgIiBy
ZXR1cm5zIik7DQoJCXJldHVybiByZXN1bHQ7DQoJfQ0KfQ==
--------------060305030603080608080807--
|
|
|
Powered by
FUDForum. Page generated in 0.05075 seconds