DEPRECATED. Some of this is important and will be moved out to the wiki on googlecode before this file is removed from the repo. IMPORTANT NOTES: --------------- 1. Yes, a badly-written module can VERY easily crash the whole DSCAS3. Be careful, Austin. 2. You module will get its chance to do its thing via your executeModule() method (in some exceptional cases view()). If anything goes wrong, indicate this by simply raising an exception. The moduleManager will trap this and communicate it to the user. 3. If you know that your module requires the complete input extent (i.e. not just an UpdateExtent), remember to call SetUpdateExtentToWholeExtent() on the input in your setInput() method. 4. Instantiating a vtkInteractorObserver (e.g. vtkPlaneWidget) and associating it with an interactor is NOT enough to keep it around. Nobody takes out references, so your observer will die as soon as you leave its scope. KEEP YOUR OWN BINDING until you don't need the observer anymore. LAYOUT OF DIALOGUES ------------------- Yes, we follow the Windows standards, simply because they're the most widely used ones and because most of our "clients" use/will use Windows. Deal with it. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch09d.asp has the low-down on button-order. In short, the most important button is first in its group, whether that group is horizontally or vertically aligned on the bottom right of the dialog. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch14e.asp has details about the spacing between controls. Everything should be 7 pixels from the edge of the dialogue box. Non-related controls should be 7 pixels apart, related controls 4 pixels apart and text-labels and their associated controls should be 3 pixels apart. Since it makes things with sizers much easier, you can do 8 instead of 7. You'll see why. :) IMPORTANT TIP: Always start with a frame, top-level sizer, panel, vertical sizer in panel and then a single vertical sizer in that sizer. This last sizer will contain everything and make it possible for us to make a 7 pixel border around the edge. Trust me on this. Many of the utility functions adding buttons or standard controls to viewFrames expect this kind of layout. NAMING CONVENTION ----------------- 1. "Protected" methods start with an underscore (_), e.g. _utilityFunction() 2. All names (methods, variables) have first word starting with lower-case letter, all other constituent words and phrases starting with capital, e.g. segmentObjectsFromImage() 3. wxPython event handlers will mostly take the following form: _handlerShowHideObject() (this is so that they're all grouped together when methods are alphabetically sorted) 4. VTK event observers will mostly take the following form: _observerWidgetInteraction() 5. Methods in a class should be alphabetically sorted as far as possible.