Last modified Feb,20,98

Document contains description of the CLONE and CLONE WINDOW objects

Class CloneGo : GraphicObject
Description       This is the CloneGo object derived from GraphicObject.
                  It stores the information about the clone coordinates and
                   lengths of the sequenced clone ends (if any).
                   CloneGo object draws the horizontal bar corresponding to
                   the clone the endpoints are indicated as short vertical
                   lines at the end of the bar the bar is colored corresponding
                   to the sequencing completion
                        (red - fully sequenced,
                         green - partially sequenced ,where the sequenced ends
                                 appear bright green,
                         blue - not sequenced)
                   If there is enough space clone name appears under the bar.
                   Clone can be highlighted in two ways:
                          orange - to show that the object is selected for editing
                               (through coordinate box or pop-up window)
                          yellow - to show that selected STS marker belongs to this
                              clone
                   Clone can be unhighlighted
                   Endpoints can be edited

                   Note: CloneGo is created by and gets action events from the View

 Constructor       CloneGo(x_start,x_end,y_start,y_end,
                          name, length, right_sequence_length, left_sequence_length)
 
 Destructor        ~CloneGo()
 Private Data Members
                    string name - clone name
                    int length  - clone length in ACEdb units
                    int right_sequence_length
                        - length of the right sequence in ACEdb units
                    int left_sequence_length -
                        -  length of the left sequence in ACEdb units
Public Class Methods

                    void HighlightEdit(); // - draws orange frame around the object
                    void HighlightPassive(); // - draws yellow frame around the object
                    void Unhighlight(); //   - unhighlits clone
                    void paint();
                    ActionEvent processMouseEvent(MouseEvent event);
                    ActionEvent processActionEvent(ActionEvent event);
                    double GetLeftEnd();
                    double GetRightEnd();
Private Class Methods
                    ChangeLeftEnd(double left_coordinate)
                    MoveLeftEnd(double shift)
                    ChangeRightEnd(double right_coordinate)
                    MoveRightEnd(double shift)

Class CloneWindow : View 
Description       This is CloneWindow class derived from View class.
                  It stores the information about the clone. The data
                    are displayed in the editable text fields.
                  The parameters displayed are:
                          name
                          left_end in the ACeDB units,
                          right_end in the ACeDB units
                          left_sequence (or 0 if not sequenced),
                          right_sequence (or 0 if not sequenced),
                          remarks
                          STS markers that the clone belongs to.
                  Color indicating the sequencing status appears
                       in the color box
                  Exact length (for fully sequenced clones only) is
                       displayed in the nonnegotiable text field
                  Merge button initiate merging of left-end and right-end
                       sequences if the user believes that clone can be considered
                       fully sequenced.
                  Save button initiate saving the data into the database
 
                  Note: Mouse and key events are passed from the model object
 

Constructors      CloneWindow(
                    string       _remark[];          // remark string array
                    unsigned int _chromosome;     // chromosome number clone belongs to
                    double       _leftEndPosition;      // in AceDB units (kB)
                    double       _rightEndPosition; // in AceDB units
                    double       _centerPosition;    // in AceDB units
                    string       _leftEndSequence;     // DNA sequence for left end
                    string       _rightEndSequence;  // DNA sequence for right end
                    string       _sequence;             // DNA sequence for this clone
                                   // only exists if completely sequenced, 0 if not
                    long int   _seqLength;// in bp, only exists if completely sequenced
                                           // 0 if not
                    string       _inSitu;         // chrom. band(s) clone binds in FISH
                    string       _positiveSTS[])        // string array
                   CloneWindow()
Destructor        ~CloneWindow()

Private Data Members
                   vector<GraphicsObject> graphicsObjectList;
                                     / text fields,buttons,color box
Public Class Methods
                  ActionEvent processMouseEvent(MouseEvent
                       event);
                  ActionEvent processKeyEvent(KeyEvent event);