I want to build a visual based environment in which the user will drag and drop components on an empty canvas and these components would be possible to be interconnected with lines using Java like Quartz composer. My questions are: 1) How would I build the graphic part of the block? Use Java2D to create a rectangle? Use photoshop to make the graphic and then insert it in my project? Then how would I add the properties? Build a class that has the functionality and through properties link them to the graphic? 2) How would I built the lines and in the same time make the flow between two blocks a reality?