1
11M37063 11RectangleseHeightsetWidthShapesetXsetYxyGUITimerGUITimerGUITimerGUITimer: :
22RectangleseHeightsetWidthShapesetXsetYxyGUITimerGUITimer3GUITimerGUITimerRepainterTimerGUITimerTimerTimerTimerGUIGUIGUI3RectangleseHeightsetWidthShapesetXsetYxyRepainterGUIGUIGUITimerTimerTimerTimer: 4setHeightTimerGUI4RepainterTimer: 5RectangleseHeightsetWidthGUITimerTimerRectangleseHeightsetWidthGUIGUITimerTimerGUI5EclipseGluonJ [OOPSLA 10]Java6
6
()
7RectangleseHeightsetWidthRepainterTimerGUITimerTimerGUI7
()8RectangleseHeightsetWidthShapesetXsetYxyShapeRectangleRepainterTimerGUITimerTimerTimerTimerGUIGUIGUI89
9
10RectangleseHeightsetWidthShapesetXsetYyRepainterTimerGUITimerTimerTimerGUIGUIGUIxTimer1011
1112
12Withincaller
13ShapesetXsetYxyFigureEditor
Shape s;int newX = s.setX(newX);
mouseDragged
Shape s;int newX = s.setX(newX);
mouseClickedTimerTimerTimerFigureEditormouseDraggedRepainterGUIGUI13Withincaller
14TimerTimerTimerFigureEditormouseDraggedRepainterGUIGUIFigureEditormouseDraggedShapesetXsetYxyFigureEditor
Shape s;int newX = s.setX(newX);
mouseDragged
Shape s;int newX = s.setX(newX);
mouseClicked14
Within()callerWithin1515Within()Within16
16JDTGluonJ1840 54 24
1717(1.) (2.) (3.) Within(4.) JDTJava
1818JDT40%1.819
19JDT202080%20%21
21(1/2)AJDT (+ AspectJ)
AspectMaps [Fabry 11]
2222(2/2)KIDE [Kanazawa 12]
Code Bubbles [Andrew 10]bubble
2323future workGluonJfuture workPPL 2011282424