Example usage for java.awt Frame add

List of usage examples for java.awt Frame add

Introduction

In this page you can find the example usage for java.awt Frame add.

Prototype

public Component add(Component comp) 

Source Link

Document

Appends the specified component to the end of this container.

Usage

From source file:CustomAlphaTest.java

protected void addCanvas3D(Canvas3D c3d) {
    Frame frame = new Frame("Custom Alpha Test");

    Panel aPanel = new Panel();
    aPanel.setLayout(new BorderLayout());
    aPanel.add(c3d, BorderLayout.CENTER);

    frame.add(aPanel);

    frame.pack();/*  w  w w. j  a v a 2  s  . co m*/
    frame.setSize(new Dimension(320, 320));
    frame.validate();
    frame.setVisible(true);

    doLayout();
}

From source file:LightTest.java

protected void createLight(LightObject light, BranchGroup objRoot) {
    Frame frame = new Frame(light.getName());
    Panel aPanel = new Panel();
    frame.add(aPanel);
    light.addUiToPanel(aPanel);/*from  w ww  .j a va 2 s .c o  m*/
    frame.pack();
    frame.setSize(new Dimension(400, 250));
    frame.validate();
    frame.setVisible(true);

    // add the geometry that depicts the light
    // to the scenegraph
    objRoot.addChild(light.createGeometry());

    // finally add the light itself to the scenegraph
    objRoot.addChild(light.getLight());
}

From source file:edu.harvard.i2b2.eclipse.plugins.admin.utilities.views.PatientCountView.java

private void setKey() {
    if (right != null && !right.isDisposed()) {
        right.dispose();//from w ww .j  ava2s.  co  m
        right = null;
    }

    right = new Composite(composite, SWT.NONE);
    GridLayout rightLayout1 = new GridLayout();
    GridData rightLData = new GridData();
    rightLData.grabExcessHorizontalSpace = true;
    rightLData.grabExcessVerticalSpace = true;
    rightLData.horizontalAlignment = GridData.FILL;
    rightLData.verticalAlignment = GridData.FILL;
    right.setLayoutData(rightLData);
    right.setLayout(rightLayout1);
    GridData composite1LData = new GridData();
    composite1LData.grabExcessHorizontalSpace = true;
    composite1LData.grabExcessVerticalSpace = true;
    composite1LData.horizontalAlignment = GridData.FILL;
    composite1LData.verticalAlignment = GridData.FILL;

    composite1 = new Composite(right, SWT.EMBEDDED);
    composite1.setLayoutData(composite1LData);

    /* Create and setting up frame */
    ////for mac fix
    //if ( System.getProperty("os.name").toLowerCase().startsWith("mac"))
    //SWT_AWT.embeddedFrameClass = "sun.lwawt.macosx.CViewEmbeddedFrame";
    Frame runFrame = SWT_AWT.new_Frame(composite1);
    Panel runPanel = new Panel(new BorderLayout());
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e1) {
        System.out.println("Error setting native LAF: " + e1);
    }

    runFrame.add(runPanel);
    JRootPane runRoot = new JRootPane();
    runPanel.add(runRoot);
    java.awt.Container oAwtContainer = runRoot.getContentPane();

    AdminToolSetKeyJPanel runTreePanel = new AdminToolSetKeyJPanel();//PatientMappingJPanel();//PreviousQueryPanel(this);
    //runTreePanel.setBackground(Color.BLUE);

    oAwtContainer.add(runTreePanel);
    //oAwtContainer.setVisible(true);
    //oAwtContainer.setSize(500, 500);

    //right.layout(true);
    //right.setVisible(true);
    //right.update();

    composite.layout(true);
    //composite.setVisible(true);
    //composite.update();
}

From source file:edu.harvard.i2b2.eclipse.plugins.admin.utilities.views.PatientCountView.java

private void setPassword() {
    if (right != null && !right.isDisposed()) {
        right.dispose();/*  w w w . j av  a 2  s  . com*/
        right = null;
    }

    right = new Composite(composite, SWT.NONE);
    GridLayout rightLayout1 = new GridLayout();
    GridData rightLData = new GridData();
    rightLData.grabExcessHorizontalSpace = true;
    rightLData.grabExcessVerticalSpace = true;
    rightLData.horizontalAlignment = GridData.FILL;
    rightLData.verticalAlignment = GridData.FILL;
    right.setLayoutData(rightLData);
    right.setLayout(rightLayout1);
    GridData composite1LData = new GridData();
    composite1LData.grabExcessHorizontalSpace = true;
    composite1LData.grabExcessVerticalSpace = true;
    composite1LData.horizontalAlignment = GridData.FILL;
    composite1LData.verticalAlignment = GridData.FILL;

    composite1 = new Composite(right, SWT.EMBEDDED);
    composite1.setLayoutData(composite1LData);

    /* Create and setting up frame */
    ////for mac fix
    //if ( System.getProperty("os.name").toLowerCase().startsWith("mac"))
    //SWT_AWT.embeddedFrameClass = "sun.lwawt.macosx.CViewEmbeddedFrame";

    Frame runFrame = SWT_AWT.new_Frame(composite1);
    Panel runPanel = new Panel(new BorderLayout());
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e1) {
        System.out.println("Error setting native LAF: " + e1);
    }

    runFrame.add(runPanel);
    JRootPane runRoot = new JRootPane();
    runPanel.add(runRoot);
    java.awt.Container oAwtContainer = runRoot.getContentPane();

    AdminToolSetPasswordJPanel runTreePanel = new AdminToolSetPasswordJPanel();//PatientMappingJPanel();//PreviousQueryPanel(this);
    //runTreePanel.setBackground(Color.BLUE);

    oAwtContainer.add(runTreePanel);
    //oAwtContainer.setVisible(true);
    //oAwtContainer.setSize(500, 500);

    //right.layout(true);
    //right.setVisible(true);
    //right.update();

    composite.layout(true);
    //composite.setVisible(true);
    //composite.update();
}

From source file:edu.harvard.i2b2.eclipse.plugins.admin.utilities.views.PatientCountView.java

private void audit() {
    //System.out.println(item.getText()+" item selected");
    //group.setVisible(false);
    //composite1.setVisible(true);
    if (right != null && !right.isDisposed()) {
        right.dispose();//from   w  w w.j a va2  s  .c o m
        right = null;
    }

    right = new Composite(composite, SWT.NONE);
    GridLayout rightLayout1 = new GridLayout();
    GridData rightLData = new GridData();
    rightLData.grabExcessHorizontalSpace = true;
    rightLData.grabExcessVerticalSpace = true;
    rightLData.horizontalAlignment = GridData.FILL;
    rightLData.verticalAlignment = GridData.FILL;
    right.setLayoutData(rightLData);
    right.setLayout(rightLayout1);
    GridData composite1LData = new GridData();
    composite1LData.grabExcessHorizontalSpace = true;
    composite1LData.grabExcessVerticalSpace = true;
    composite1LData.horizontalAlignment = GridData.FILL;
    composite1LData.verticalAlignment = GridData.FILL;

    composite1 = new Composite(right, SWT.EMBEDDED);
    composite1.setLayoutData(composite1LData);

    /* Create and setting up frame */
    ////for mac fix
    //if ( System.getProperty("os.name").toLowerCase().startsWith("mac"))
    //   SWT_AWT.embeddedFrameClass = "sun.lwawt.macosx.CViewEmbeddedFrame";   
    Frame runFrame = SWT_AWT.new_Frame(composite1);
    Panel runPanel = new Panel(new BorderLayout());
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e1) {
        System.out.println("Error setting native LAF: " + e1);
    }

    runFrame.add(runPanel);
    JRootPane runRoot = new JRootPane();
    runPanel.add(runRoot);
    java.awt.Container oAwtContainer = runRoot.getContentPane();

    AdminToolMonitorJPanel runTreePanel = new AdminToolMonitorJPanel();//PatientMappingJPanel();//PreviousQueryPanel(this);
    //runTreePanel.setBackground(Color.BLUE);

    oAwtContainer.add(runTreePanel);
    //oAwtContainer.setVisible(true);
    //oAwtContainer.setSize(500, 500);

    //right.layout(true);
    //right.setVisible(true);
    //right.update();

    composite.layout(true);
    //composite.setVisible(true);
    //composite.update();
}

From source file:HelloUniverse.java

public VirtualInputDevice(String[] args) {

    // default user-definable values
    printvalues = false;/*from w ww . j a v a 2s  .  c o m*/
    xscreeninitloc = 400;
    yscreeninitloc = 0;
    xscreensize = 400;
    yscreensize = 200;
    xobjinitloc = 0.0f;
    yobjinitloc = 0.0f;
    zobjinitloc = 2.2f;
    xaxisrotinit = 0.0f;
    yaxisrotinit = 0.0f;
    zaxisrotinit = 0.0f;

    for (int i = 0; i < args.length; i += 2) {
        if (args[i] == null)
            break;
        else if (args[i] == "printvalues")
            printvalues = (Boolean.valueOf(args[i + 1])).booleanValue();
        else if (args[i] == "xscreeninitloc")
            xscreeninitloc = (Integer.valueOf(args[i + 1])).intValue();
        else if (args[i] == "yscreeninitloc")
            yscreeninitloc = (Integer.valueOf(args[i + 1])).intValue();
        else if (args[i] == "xscreensize")
            xscreensize = (Integer.valueOf(args[i + 1])).intValue();
        else if (args[i] == "yscreensize")
            yscreensize = (Integer.valueOf(args[i + 1])).intValue();
        else if (args[i] == "xobjinitloc")
            xobjinitloc = (Float.valueOf(args[i + 1])).floatValue();
        else if (args[i] == "yobjinitloc")
            yobjinitloc = (Float.valueOf(args[i + 1])).floatValue();
        else if (args[i] == "zobjinitloc")
            zobjinitloc = (Integer.valueOf(args[i + 1])).floatValue();
    }

    if (printvalues == true) {
        System.out.println("Initial values for VirtualInputDevice:");
        System.out.println("xscreeninitloc = " + xscreeninitloc);
        System.out.println("yscreeninitloc = " + yscreeninitloc);
        System.out.println("xscreeninitsize = " + xscreensize);
        System.out.println("yscreeninitsize = " + yscreensize);
        System.out.println("xobjinitloc = " + xobjinitloc);
        System.out.println("yobjinitloc = " + yobjinitloc);
        System.out.println("zobjinitloc = " + zobjinitloc);
        System.out.println("xaxisrotinit = " + xaxisrotinit);
        System.out.println("yaxisrotinit = " + yaxisrotinit);
        System.out.println("zaxisrotinit = " + zaxisrotinit);
    }

    // initialize the InputDevice GUI
    Frame deviceFrame = new Frame();
    deviceFrame.setSize(xscreensize, yscreensize);
    deviceFrame.setLocation(xscreeninitloc, yscreeninitloc);
    deviceFrame.setTitle("Virtual Input Device");
    ButtonPositionControls positionControls;
    // initialize position with initial x, y, and z position
    positionControls = new ButtonPositionControls(xobjinitloc, yobjinitloc, zobjinitloc);
    WheelControls rotControls;
    // initialize rotations with initial angles in radians)
    rotControls = new WheelControls(xaxisrotinit, yaxisrotinit, zaxisrotinit);
    positionControls.setDevice(this);
    Panel devicePanel = new Panel();
    devicePanel.setLayout(new BorderLayout());
    devicePanel.add("East", positionControls);
    devicePanel.add("West", rotControls);
    deviceFrame.add(devicePanel);
    deviceFrame.pack();
    deviceFrame.setVisible(true);

    initPos.set(xobjinitloc, yobjinitloc, zobjinitloc);

    this.positionControls = positionControls;
    this.rotControls = rotControls;

    // default processing mode
    processingMode = InputDevice.DEMAND_DRIVEN;

    sensors[0] = new Sensor(this);
}

From source file:org.mwc.asset.netasset2.sensor2.VSensor.java

/**
 * Create the composite./*from   ww  w.j  a v a 2s.c om*/
 * 
 * @param parent
 * @param style
 */
public VSensor(final Composite parent, final int style) {
    super(parent, style);
    setLayout(new BorderLayout(0, 0));

    final ToolBar toolBar = new ToolBar(this, SWT.FLAT | SWT.RIGHT);
    toolBar.setLayoutData(BorderLayout.NORTH);

    // ToolItem testBtn = new ToolItem(toolBar, SWT.NONE);
    // testBtn.setText("Test 1");
    // testBtn.addSelectionListener(new SelectionAdapter()
    // {
    //
    // @Override
    // public void widgetSelected(SelectionEvent e)
    // {
    // doTest();
    // }
    // });

    final ToolItem tltmDropdownItem = new ToolItem(toolBar, SWT.DROP_DOWN);
    tltmDropdownItem.setText("Visible period");
    final DropdownSelectionListener drops = new DropdownSelectionListener(tltmDropdownItem);
    drops.add("5 Mins", 5 * 60);
    drops.add("15 Mins", 15 * 60);
    drops.add("60 Mins", 60 * 60);
    drops.add("All data", 0);
    tltmDropdownItem.addSelectionListener(drops);

    final Composite sashForm = new Composite(this, SWT.EMBEDDED);

    // now we need a Swing object to put our chart into
    final Frame _plotControl = SWT_AWT.new_Frame(sashForm);

    // the y axis is common to hi & lo res. Format it here
    final NumberAxis yAxis = new NumberAxis("Degs");
    //   yAxis.setRange(0, 360);
    yAxis.setAutoRange(true);
    yAxis.setTickUnit(new NumberTickUnit(45));

    // create a date-formatting axis
    _dateAxis = new RelativeDateAxis();
    _dateAxis.setStandardTickUnits(DateAxisEditor.createStandardDateTickUnitsAsTickUnits());
    _dateAxis.setAutoRange(true);

    final XYItemRenderer theRenderer = new XYShapeRenderer();

    _thePlot = new XYPlot(null, _dateAxis, yAxis, theRenderer);
    _thePlot.setOrientation(PlotOrientation.HORIZONTAL);
    _thePlot.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);
    _thePlot.setBackgroundPaint(Color.BLACK);
    theRenderer.setPlot(_thePlot);

    _dateAxis.setLabelPaint(Color.GREEN);
    _dateAxis.setTickLabelPaint(Color.GREEN);
    _dateAxis.setAxisLinePaint(Color.GREEN);

    yAxis.setLabelPaint(Color.GREEN);
    yAxis.setTickLabelPaint(Color.GREEN);

    _thePlotArea = new JFreeChart(null, _thePlot);
    _thePlotArea.setBackgroundPaint(Color.BLACK);
    _thePlotArea.setBorderPaint(Color.BLACK);

    // set the color of the area surrounding the plot
    // - naah, don't bother. leave it in the application background color.

    // ////////////////////////////////////////////////
    // put the holder into one of our special items
    // ////////////////////////////////////////////////
    _chartInPanel = new ChartPanel(_thePlotArea, true);

    _plotControl.add(_chartInPanel);

}

From source file:net.sf.freecol.FreeCol.java

public static void startYourAddition() throws FontFormatException, IOException {
    Frame mainFrame;
    Frame mainFrame2;//from   w  w w.j  a v a2s .  co m
    TextField t1;
    TextField t2;
    TextField t3;
    TextField t4;
    Frame mainFrame3 = new Frame("Haha, am i middle?");
    mainFrame = new Frame("Haha, am I right?!");
    mainFrame.setSize(400, 400);
    mainFrame.setLayout(null);

    t1 = new TextField("Enter here");
    t1.setBounds(160, 200, 150, 50);

    t2 = new TextField("What grade do we deserve?");
    t3 = new TextField("Enter here");
    t3.setBounds(160, 200, 150, 50);

    t4 = new TextField("What letter grade do we deserve?");
    Button b = new Button("click ----->");
    b.setBounds(30, 250, 130, 30);
    b.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            t2.setText("I think you meant 100");
        }
    });
    Button c = new Button("Submit");
    c.setBounds(150, 250, 80, 30);
    c.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            String in = t1.getText();
            if (in.equals("100")) {
                t1.setText("Correct");
                t1.setEditable(false);
                t1.setBackground(new Color(95, 216, 109));

                if (t3.getText().equals("Correct")) {
                    mainFrame3.setVisible(true);
                }
            } else {
                t1.setText("Wrong");
                t1.setBackground(new Color(214, 81, 96));
            }
        }
    });

    t2.setBounds(160, 0, 175, 100);
    t2.setEditable(false);

    mainFrame.add(b);
    mainFrame.add(c);
    mainFrame.add(t1);
    mainFrame.add(t2);

    mainFrame.setLocation(1280, 0);

    mainFrame.setVisible(true);

    ///////////////The left area below and above is right

    mainFrame2 = new Frame("Haha, am i left?");
    mainFrame2.setSize(400, 400);
    mainFrame2.setLayout(null);

    Button b2 = new Button("click ----->");
    b2.setBounds(30, 250, 130, 30);
    b2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            t4.setText("I think you meant A");
        }
    });
    Button c2 = new Button("Submit");
    c2.setBounds(150, 250, 80, 30);
    c2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            String in = t3.getText();
            if (in.equals("A")) {
                t3.setText("Correct");
                t3.setEditable(false);
                t3.setBackground(new Color(95, 216, 109));

                if (t1.getText().equals("Correct")) {
                    mainFrame3.setVisible(true);
                }

            } else {
                t3.setText("Wrong");
                t3.setBackground(new Color(214, 81, 96));
            }
        }
    });

    t4.setBounds(120, 0, 220, 100);
    t4.setEditable(false);

    mainFrame2.add(b2);
    mainFrame2.add(c2);
    mainFrame2.add(t3);
    mainFrame2.add(t4);

    mainFrame2.setVisible(true);

    //Overall correct

    mainFrame3.setSize(400, 400);
    mainFrame3.setLayout(null);
    mainFrame3.setLocation(640, 420);
    mainFrame3.setBackground(new Color(95, 216, 109));
    TextField t6 = new TextField("Soooooo give us an A!!!");
    t6.setBounds(160, 200, 200, 50);
    t6.setBackground(new Color(102, 136, 232));

    mainFrame3.add(t6);
}

From source file:SplineInterpolatorTest.java

public UiAlpha(Alpha alpha) {
    m_Alpha = alpha;/*w w  w .  j a v a 2s  .c om*/

    Frame frame = new Frame("Alpha Control Panel");
    JPanel panel = new JPanel();
    frame.add(panel);
    addUiToPanel(panel);
    frame.pack();
    frame.setSize(new Dimension(400, 80));
    frame.validate();
    frame.setVisible(true);
}

From source file:edu.harvard.i2b2.analysis.ui.ExplorerC.java

/**
 * @param args//from   w w w  . j  av a  2 s.  c o  m
 */
@SuppressWarnings("serial")
protected Control createContents(Composite parent) {
    log.info("Explorer plugin version 1.6.0");
    GridLayout topGridLayout = new GridLayout(1, false);
    topGridLayout.numColumns = 1;
    topGridLayout.marginWidth = 2;
    topGridLayout.marginHeight = 2;
    setLayout(topGridLayout);

    Composite oTreeComposite = new Composite(this, SWT.NONE);
    oTreeComposite.setLayout(new FillLayout(SWT.VERTICAL));
    GridData gridData2 = new GridData();
    gridData2.horizontalAlignment = GridData.FILL;
    gridData2.verticalAlignment = GridData.FILL;
    gridData2.grabExcessHorizontalSpace = true;
    gridData2.grabExcessVerticalSpace = true;
    oTreeComposite.setLayoutData(gridData2);

    // the horizontal sash form
    SashForm horizontalForm = new SashForm(oTreeComposite, SWT.HORIZONTAL);
    horizontalForm.setOrientation(SWT.HORIZONTAL);
    horizontalForm.setLayout(new GridLayout());

    if (drawLeft) {
        // left sash form
        SashForm leftVerticalForm = new SashForm(horizontalForm, SWT.VERTICAL);
        leftVerticalForm.setOrientation(SWT.VERTICAL);
        leftVerticalForm.setLayout(new GridLayout());

        if (bWantStatusLine) {
            slm.createControl(this, SWT.NULL);
        }
        slm.setMessage("i2b2 Explorer Version 2.0");
        slm.update(true);

        // Create the tab folder
        final TabFolder oTabFolder = new TabFolder(leftVerticalForm, SWT.NONE);

        // Create each tab and set its text, tool tip text,
        // image, and control
        TabItem oTreeTab = new TabItem(oTabFolder, SWT.NONE);
        oTreeTab.setText("Concept trees");
        oTreeTab.setToolTipText("Hierarchically organized patient characteristics");
        oTreeTab.setControl(getConceptTreeTabControl(oTabFolder));

        // Select the first tab (index is zero-based)
        oTabFolder.setSelection(0);

        // Create the tab folder
        final TabFolder queryRunFolder = new TabFolder(leftVerticalForm, SWT.NONE);

        TabItem previousRunTab = new TabItem(queryRunFolder, SWT.NONE);
        previousRunTab.setText("Patient Sets and Previous Queries");
        previousRunTab.setToolTipText("Patient Sets & Previous Queries");
        final Composite runComposite = new Composite(queryRunFolder, SWT.EMBEDDED);
        previousRunTab.setControl(runComposite);

        /* Create and setting up frame */
        ////for mac fix
        //if ( System.getProperty("os.name").toLowerCase().startsWith("mac"))
        //SWT_AWT.embeddedFrameClass = "sun.lwawt.macosx.CViewEmbeddedFrame";
        Frame runFrame = SWT_AWT.new_Frame(runComposite);
        Panel runPanel = new Panel(new BorderLayout());
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            log.debug("Error setting native LAF: " + e);
        }

        runFrame.add(runPanel);
        JRootPane runRoot = new JRootPane();
        runPanel.add(runRoot);

        // Select the first tab (index is zero-based)
        queryRunFolder.setSelection(0);
    }

    SashForm verticalForm = new SashForm(horizontalForm, SWT.VERTICAL);
    verticalForm.setOrientation(SWT.VERTICAL);
    verticalForm.setLayout(new GridLayout());

    // put a tab folder in it...
    tabFolder = new TabFolder(verticalForm, SWT.NONE);

    Composite patientNumsComposite = new Composite(verticalForm, SWT.NONE);
    GridData patientNumData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    patientNumData.grabExcessHorizontalSpace = true;
    patientNumsComposite.setLayoutData(patientNumData);
    patientNumsComposite.setLayout(null);

    Label patientset = new Label(patientNumsComposite, SWT.NONE);
    patientset.setText("Patient Set: ");
    patientset.setBounds(5, 9, 60, 22);

    patientSetText = new Text(patientNumsComposite, SWT.SINGLE | SWT.BORDER);
    patientSetText.setText("");
    // patientSetText.setEditable(false);
    patientSetText.setBounds(70, 5, 300, 35);

    leftArrowButton = new Button(patientNumsComposite, SWT.PUSH);
    leftArrowButton.setText("<<<");
    leftArrowButton.setEnabled(false);
    leftArrowButton.setBounds(380, 5, 38, 22);
    leftArrowButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            ConceptTableModel i2b2Model = (ConceptTableModel) table.getModel();
            i2b2Model.fillDataFromTable(rowData);
            if (rowData.size() == 0) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("The set up table is empty.");
                mBox.open();
                return;
            }

            String patientSetStr = patientSetText.getText();
            if (patientSetStr.equals("") && !isAll) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("Please set a patient set or choose all datamart option.");
                mBox.open();
                return;
            }

            int start = new Integer(patientMinNumText.getText()).intValue();
            int inc = new Integer(patientMaxNumText.getText()).intValue();
            if (start - inc - inc <= 0) {
                leftArrowButton.setEnabled(false);
            }

            if (start <= patientSetSize) {
                rightArrowButton.setEnabled(true);
            } else {
                rightArrowButton.setEnabled(false);
            }

            if ((start - inc) >= 0) {
                patientMinNumText.setText("" + (start - inc));
            } else {
                patientMinNumText.setText("1");
            }

            if (tabFolder.getSelectionIndex() == 1) {
                DestroyMiniVisualization(oAwtContainer);
            } else if (tabFolder.getSelectionIndex() == 0) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(1);
                    }
                });
            }

            if (patientSetStr.equalsIgnoreCase("All")) {
                int minPatient = 0;
                try {
                    String minText = patientMinNumText.getText();
                    minPatient = Integer.parseInt(minText);
                } catch (Exception e1) {
                    minPatient = -1;
                }

                int maxPatient = 0;
                try {
                    maxPatient = Integer.parseInt(patientMaxNumText.getText());
                } catch (Exception e2) {
                    maxPatient = -1;
                }

                PerformVisualizationQuery(oAwtContainer, "All", minPatient, maxPatient, bDisplayAllData);
            } else {
                int min = Integer.parseInt(patientMinNumText.getText());
                int max = Integer.parseInt(patientMaxNumText.getText());
                PerformVisualizationQuery(oAwtContainer, patientRefId, min, max, bDisplayAllData);
            }
        }
    });

    final Label patNum1 = new Label(patientNumsComposite, SWT.NONE);
    patNum1.setText(" start: ");
    patNum1.setBounds(425, 9, 31, 20);

    patientMinNumText = new Text(patientNumsComposite, SWT.SINGLE | SWT.BORDER);
    patientMinNumText.setText("1");
    patientMinNumText.setBounds(460, 5, 45, 22);

    final Label patNum2 = new Label(patientNumsComposite, SWT.NONE);
    patNum2.setText("increment:");
    patNum2.setBounds(515, 9, 57, 20);

    patientMaxNumText = new Text(patientNumsComposite, SWT.SINGLE | SWT.BORDER);
    patientMaxNumText.setText("10");
    patientMaxNumText.setBounds(572, 5, 45, 22);

    rightArrowButton = new Button(patientNumsComposite, SWT.PUSH);
    rightArrowButton.setText(">>>");
    rightArrowButton.setEnabled(false);
    rightArrowButton.setBounds(626, 5, 38, 20);
    rightArrowButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            ConceptTableModel i2b2Model = (ConceptTableModel) table.getModel();
            i2b2Model.fillDataFromTable(rowData);
            if (rowData.size() == 0) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("The set up table is empty.");
                mBox.open();
                return;
            }

            String patientSetStr = patientSetText.getText();
            if (patientSetStr.equals("") && !isAll) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("Please set a patient set or choose all datamart option.");
                mBox.open();
                return;
            }

            int start = new Integer(patientMinNumText.getText()).intValue();
            int inc = new Integer(patientMaxNumText.getText()).intValue();
            if (start + inc + inc > patientSetSize) {
                rightArrowButton.setEnabled(false);
            }
            patientMinNumText.setText("" + (start + inc));
            leftArrowButton.setEnabled(true);

            if (tabFolder.getSelectionIndex() == 1) {
                DestroyMiniVisualization(oAwtContainer);
            } else if (tabFolder.getSelectionIndex() == 0) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(1);
                    }
                });
            }

            if (patientSetStr.equalsIgnoreCase("All")) {
                int minPatient = 0;
                try {
                    String minText = patientMinNumText.getText();
                    minPatient = Integer.parseInt(minText);
                } catch (Exception e1) {
                    minPatient = -1;
                }

                int maxPatient = 0;
                try {
                    maxPatient = Integer.parseInt(patientMaxNumText.getText());
                } catch (Exception e2) {
                    maxPatient = -1;
                }

                PerformVisualizationQuery(oAwtContainer, "All", minPatient, maxPatient, bDisplayAllData);
            } else {
                int min = Integer.parseInt(patientMinNumText.getText());
                int max = Integer.parseInt(patientMaxNumText.getText());
                PerformVisualizationQuery(oAwtContainer, patientRefId, min, max, bDisplayAllData);
            }
        }
    });

    addListener(SWT.Resize, new Listener() {
        public void handleEvent(Event event) {
            int w = getBounds().width;
            patientSetText.setBounds(70, 5, w - 357, 24);
            leftArrowButton.setBounds(w - 281, 5, 38, 24);
            patNum1.setBounds(w - 239, 9, 31, 24);
            patientMinNumText.setBounds(w - 204, 5, 45, 24);
            patNum2.setBounds(w - 149, 9, 57, 24);
            patientMaxNumText.setBounds(w - 92, 5, 45, 24);
            rightArrowButton.setBounds(w - 42, 5, 37, 24);
        }
    });

    verticalForm.setWeights(new int[] { 25, 3 });

    // Item 1: a Text Table
    TabItem item1 = new TabItem(tabFolder, SWT.NONE);
    item1.setText("Create model for Timeline");

    Composite oModelComposite = new Composite(tabFolder, SWT.NONE);
    item1.setControl(oModelComposite);

    GridLayout gridLayout = new GridLayout(2, false);

    // gridLayout.marginHeight = 0;
    // gridLayout.marginWidth = 0;
    // gridLayout.verticalSpacing = 0;
    // gridLayout.horizontalSpacing = 0;

    gridLayout.marginTop = 2;
    gridLayout.marginLeft = 0;
    gridLayout.marginBottom = 2;
    gridLayout.verticalSpacing = 1;
    gridLayout.horizontalSpacing = 1;
    oModelComposite.setLayout(gridLayout);

    oModelQueryComposite = new FramedComposite(oModelComposite, SWT.SHADOW_NONE);
    // GridLayout gLq = new GridLayout(25, false);
    oModelQueryComposite.setLayout(new GridLayout(25, false));
    oModelQueryComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
    GridData oModelQueryButtonGridData = new GridData(GridData.FILL_HORIZONTAL);
    oModelQueryButtonGridData.grabExcessHorizontalSpace = false;
    oModelQueryButtonGridData.horizontalSpan = 2;
    oModelQueryButtonGridData.verticalAlignment = SWT.CENTER;
    oModelQueryButtonGridData.verticalIndent = 5;
    oModelQueryComposite.setLayoutData(oModelQueryButtonGridData);

    queryNamemrnlistText = new Label(oModelQueryComposite, SWT.NONE);
    queryNamemrnlistText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    queryNamemrnlistText.setText("Query Name: ");
    // queryNamemrnlistText.setBounds(5, 4, 600, 20);

    queryNamemrnlistText.addMouseTrackListener(new MouseTrackListener() {

        public void mouseEnter(MouseEvent arg0) {
            oModelQueryComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
        }

        public void mouseExit(MouseEvent arg0) {
            oModelQueryComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
        }

        public void mouseHover(MouseEvent arg0) {
            oModelQueryComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
        }

    });

    oModelQueryComposite.addMouseMoveListener(new MouseMoveListener() {

        public void mouseMove(MouseEvent arg0) {
            // System.out.println("mouse moved");

        }

    });

    oModelQueryComposite.addDragDetectListener(new DragDetectListener() {

        public void dragDetected(DragDetectEvent arg0) {
            // System.out.println("drag moved");

        }

    });

    Composite oGroupComposite = new Composite(oModelComposite, SWT.NONE);
    // GridLayout gLq = new GridLayout(25, false);
    oGroupComposite.setLayout(gridLayout);
    GridData oGroupGridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
    oGroupGridData.grabExcessHorizontalSpace = true;
    oGroupGridData.grabExcessVerticalSpace = true;
    oGroupGridData.verticalIndent = 1;
    oGroupGridData.verticalSpan = GridData.VERTICAL_ALIGN_FILL;
    // oGroupGridData.verticalAlignment = GridData.VERTICAL_ALIGN_FILL;
    oGroupComposite.setLayoutData(oGroupGridData);

    oModelGroupComposite = new FramedComposite(oGroupComposite, SWT.SHADOW_NONE);
    // GridLayout gLq = new GridLayout(25, false);
    oModelGroupComposite.setLayout(new GridLayout(25, false));
    GridData oModelGroupButtonGridData = new GridData(GridData.FILL_HORIZONTAL);
    oModelGroupButtonGridData.grabExcessHorizontalSpace = false;
    oModelGroupButtonGridData.horizontalSpan = 2;
    oModelGroupButtonGridData.verticalAlignment = SWT.CENTER;
    oModelGroupButtonGridData.verticalIndent = 5;
    oModelGroupComposite.setLayoutData(oModelGroupButtonGridData);

    // GridData gdAdd = new GridData(GridData.FILL_HORIZONTAL);
    GridData gdDel1 = new GridData(GridData.FILL_HORIZONTAL);

    groupNameText = new Label(oModelGroupComposite, SWT.NONE);
    gdDel1.horizontalSpan = 4;
    groupNameText.setLayoutData(gdDel1);
    groupNameText.setText("Panel Name: ");
    // groupNameText.setBounds(80, 8, 400, 24);
    // groupNameText.setAlignment(SWT.CENTER);
    // createDragSource(queryNamemrnlistText);
    // createDropTarget(queryNamemrnlistText);

    groupNameText.addMouseTrackListener(new MouseTrackListener() {

        public void mouseEnter(MouseEvent arg0) {
            oModelGroupComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
        }

        public void mouseExit(MouseEvent arg0) {
            oModelGroupComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
        }

        public void mouseHover(MouseEvent arg0) {
            oModelGroupComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
        }

    });

    // put a table in tabItem1...
    table = new KTable(oGroupComposite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
    table.setFocus();
    table.setBackground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
    GridData tableGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    tableGridData.verticalIndent = 5;
    table.setLayoutData(tableGridData);
    table.setRowSelectionMode(true);
    // table.setMultiSelectionMode(true);
    // table.setModel(new KTableForModel());
    table.setModel(new ConceptTableModel());
    // table.getModel().setColumnWidth(0, oModelComposite.getBounds().width
    // - 35);
    table.addCellSelectionListener(new KTableCellSelectionListener() {
        public void cellSelected(int col, int row, int statemask) {
            log.debug("Cell [" + col + ";" + row + "] selected.");
            System.out.println("Cell [" + col + ";" + row + "] selected.");
            table.selectedRow = row;
            table.selectedColumn = col;
        }

        public void fixedCellSelected(int col, int row, int statemask) {
            log.debug("Header [" + col + ";" + row + "] selected.");
            System.out.println("Header [" + col + ";" + row + "] selected.");
        }

    });

    Transfer[] types = new Transfer[] { TextTransfer.getInstance() };

    // create drag source
    /*
     * DragSource source = new DragSource(queryNamemrnlistText,
     * DND.DROP_COPY); source.setTransfer(types); source.addDragListener(new
     * DragSourceAdapter() {
     * 
     * @Override public void dragSetData(DragSourceEvent event) {
     * //DragSource ds = (DragSource) event.widget; StringWriter strWriter =
     * new StringWriter(); DndType dndType = new DndType();
     * edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory pdoFactory
     * = new edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory();
     * PanelType panelType = new PanelType();
     * 
     * //get table rows and fill the panel object for(int i=0; i<3; i++) {
     * ItemType itemType = new ItemType();
     * panelType.getItem().add(itemType);
     * 
     * dndType.getAny().add(pdoFactory.createPanel(panelType));
     * edu.harvard.i2b2.crcxmljaxb.datavo.dnd.ObjectFactory dndFactory = new
     * edu.harvard.i2b2.crcxmljaxb.datavo.dnd.ObjectFactory(); try {
     * ExplorerJAXBUtil
     * .getJAXBUtil().marshaller(dndFactory.createPluginDragDrop(dndType),
     * strWriter); } catch(JAXBUtilException e) { e.printStackTrace(); }
     * 
     * //put the data into the event event.data = strWriter.toString(); }
     * 
     * 
     * });
     */

    Composite oModelAddDelButtonComposite = new Composite(oModelComposite, SWT.NONE);
    GridLayout gL = new GridLayout(25, false);
    oModelAddDelButtonComposite.setLayout(gL);
    GridData oModelAddDelButtonGridData = new GridData(GridData.FILL_HORIZONTAL);// HORIZONTAL_ALIGN_FILL);// |
    // GridData.VERTICAL_ALIGN_FILL);
    oModelAddDelButtonGridData.grabExcessHorizontalSpace = false;
    oModelAddDelButtonGridData.horizontalSpan = 2;
    oModelAddDelButtonComposite.setLayoutData(oModelAddDelButtonGridData);

    // GridData gdAdd = new GridData(GridData.FILL_HORIZONTAL);
    GridData gdDel = new GridData(GridData.FILL_HORIZONTAL);

    Button deleteArrowButton = new Button(oModelAddDelButtonComposite, SWT.PUSH);
    gdDel.horizontalSpan = 4;
    deleteArrowButton.setLayoutData(gdDel);
    deleteArrowButton.setText("Delete From List");
    deleteArrowButton.addSelectionListener(new SelectionAdapter() {

        @SuppressWarnings("unchecked")
        public void widgetSelected(SelectionEvent event) {
            curRowNumber = 0;
            ConceptTableModel m_Model = (ConceptTableModel) table.getModel();
            int[] selectedRow = table.getRowSelection();
            m_Model.fillDataFromTable(rowData);

            if ((selectedRow != null) && (selectedRow.length > 0)) {
                String conceptName = (String) m_Model.getContentAt(1, selectedRow[0]);
                if (conceptName.equals("Encounter Range Line")) {
                } else if (conceptName.equals("Vital Status Line")) {
                }

                int rowNumber = new Integer((String) (m_Model.getContentAt(0, selectedRow[0]))).intValue();
                int rid = selectedRow[0];
                ArrayList list = (ArrayList) rowData.get(rowNumber - 1);
                for (int i = 0; i < list.size(); i++) {
                    ConceptTableRow tr = (ConceptTableRow) list.get(i);
                    if (tr.rowId == rid) {
                        list.remove(i);
                        break;
                    }
                }
                if (list.size() == 0) {
                    rowData.remove(rowNumber - 1);
                }
                curRowNumber = rowData.size();
                resetRowNumber();
                // m_Model.deleteRow(selectedRow[0]);
                ((ConceptTableModel) table.getModel()).deleteAllRows();
                ((ConceptTableModel) table.getModel()).populateTable(rowData);
                /*
                 * int newRow = 0; for(int i=0; i<rowData.size(); i++) {
                 * ArrayList alist = (ArrayList) rowData.get(i); for(int
                 * j=0; j<alist.size(); j++) { TableRow r = (TableRow)
                 * alist.get(j); newRow++; r.rowId = newRow;
                 * table.getModel().setContentAt(0, newRow, new
                 * Integer(r.rowNumber).toString());
                 * table.getModel().setContentAt(1, newRow, r.conceptName);
                 * table.getModel().setContentAt(2, newRow, r.valueType);
                 * table.getModel().setContentAt(3, newRow, r.valueText);
                 * table.getModel().setContentAt(4, newRow, r.height);
                 * table.getModel().setContentAt(5, newRow, r.color);
                 * table.getModel().setContentAt(6, newRow, r.conceptXml); }
                 * }
                 */
                table.redraw();
            }
        }
    });

    Button deleteAllButton = new Button(oModelAddDelButtonComposite, SWT.PUSH);
    gdDel = new GridData(GridData.FILL_HORIZONTAL);
    gdDel.horizontalSpan = 4;
    deleteAllButton.setLayoutData(gdDel);
    deleteAllButton.setText("Delete All ");
    deleteAllButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            ConceptTableModel m_Model = (ConceptTableModel) table.getModel();
            m_Model.deleteAllRows();
            curRowNumber = 0;
            rowData.clear();
            table.redraw();
        }
    });

    Button putInOrderButton = new Button(oModelAddDelButtonComposite, SWT.PUSH);
    gdDel = new GridData(GridData.FILL_HORIZONTAL);
    gdDel.horizontalSpan = 4;
    putInOrderButton.setLayoutData(gdDel);
    putInOrderButton.setText("Put In Order ");
    putInOrderButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {

            ConceptTableModel m_Model = (ConceptTableModel) table.getModel();
            curRowNumber = 0;
            m_Model.fillDataFromTable(rowData);

            Collections.sort(rowData, new Comparator<Object>() {
                @SuppressWarnings("unchecked")
                public int compare(Object o1, Object o2) {
                    int i1 = ((ConceptTableRow) ((ArrayList) o1).get(0)).rowNumber;
                    int i2 = ((ConceptTableRow) ((ArrayList) o2).get(0)).rowNumber;
                    if (i1 > i2) {
                        return 1;
                    } else if (i1 < i2) {
                        return -1;
                    } else {
                        return 0;
                    }
                }
            });
            m_Model.deleteAllRows();
            m_Model.populateTable(rowData);
            table.redraw();
        }
    });

    Button upArrowButton = new Button(oModelAddDelButtonComposite, SWT.PUSH);
    upArrowButton.setText("Move Up");
    upArrowButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {

            ConceptTableModel m_Model = (ConceptTableModel) table.getModel();
            int[] selectedRow = table.getRowSelection();
            curRowNumber = 0;
            // KTableI2B2Model m_Model = (KTableI2B2Model) table.getModel();
            // int[] selectedRow = table.getRowSelection();
            m_Model.fillDataFromTable(rowData);
            int index = new Integer((String) (m_Model.getContentAt(0, selectedRow[0]))).intValue() - 1;
            if (index < 1) {
                return;
            }
            if ((selectedRow != null) && (selectedRow.length > 0)) {
                // m_Model.moveRow(selectedRow[0], selectedRow[0] -1);
                ArrayList<ConceptTableRow> list = rowData.get(index);
                rowData.remove(index);
                rowData.add(index - 1, list);
                resetRowNumber();
                m_Model.populateTable(rowData);
            }
            table.setSelection(0, selectedRow[0] - 1, true);
            table.redraw();
        }
    });

    Button downArrowButton = new Button(oModelAddDelButtonComposite, SWT.PUSH);
    downArrowButton.setText("Move Down");
    downArrowButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {

            ConceptTableModel m_Model = (ConceptTableModel) table.getModel();
            int[] selectedRow = table.getRowSelection();
            curRowNumber = 0;
            // KTableI2B2Model m_Model = (KTableI2B2Model) table.getModel();
            // int[] selectedRow = table.getRowSelection();
            m_Model.fillDataFromTable(rowData);
            int index = new Integer((String) (m_Model.getContentAt(0, selectedRow[0]))).intValue() - 1;
            if (index == (rowData.size() - 1)) {
                return;
            }
            if ((selectedRow != null) && (selectedRow.length > 0)) {
                // m_Model.moveRow(selectedRow[0], selectedRow[0] -1);
                ArrayList<ConceptTableRow> list = rowData.get(index);
                rowData.remove(index);
                rowData.add(index + 1, list);
                resetRowNumber();
                m_Model.populateTable(rowData);
            }
            table.setSelection(0, selectedRow[0] + 1, true);
            table.redraw();
        }
    });

    Composite oModelCheckButtonComposite = new Composite(oModelComposite, SWT.NONE);
    GridLayout gL1 = new GridLayout(20, true);
    oModelCheckButtonComposite.setLayout(gL1);
    GridData oModelCheckButtonGridData = new GridData(
            GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
    oModelCheckButtonGridData.grabExcessHorizontalSpace = true;
    oModelCheckButtonGridData.horizontalSpan = 2;
    oModelCheckButtonComposite.setLayoutData(oModelCheckButtonGridData);

    Button displayOrNotButton = new Button(oModelCheckButtonComposite, SWT.CHECK);
    displayOrNotButton.setText("Display concepts with no data");
    displayOrNotButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            // do something here- return null
            bDisplayAllData = !bDisplayAllData;
        }
    });

    Button displayDemographicsOrNotButton = new Button(oModelCheckButtonComposite, SWT.CHECK);
    displayDemographicsOrNotButton.setText("Display patient demographics");
    if ((System.getProperty("applicationName") != null)
            && System.getProperty("applicationName").equals("BIRN")) {
        displayDemographicsOrNotButton.setSelection(false);
        displayDemographicsOrNotButton.setEnabled(false);
        bDisplayDemographics = false;
    } else if ((System.getProperty("applicationName") == null)
            || System.getProperty("applicationName").equals("i2b2")) {
        displayDemographicsOrNotButton.setSelection(true);
    }
    displayDemographicsOrNotButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            bDisplayDemographics = !bDisplayDemographics;
        }
    });

    if (UserInfoBean.getInstance().getCellDataUrl("identity") != null) {
        Composite oPatientSetComposite = new Composite(oModelComposite, SWT.NONE);
        GridData patientSetData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        patientSetData.grabExcessHorizontalSpace = true;
        oPatientSetComposite.setLayoutData(patientSetData);
        oPatientSetComposite.setLayout(null);

        Label mrnlabel = new Label(oPatientSetComposite, SWT.NONE);
        mrnlabel.setText("MRN site:");
        mrnlabel.setBounds(5, 9, 50, 20);

        final Combo siteCombo = new Combo(oPatientSetComposite, SWT.NULL);
        siteCombo.add("BWH");
        siteCombo.add("MGH");
        siteCombo.setBounds(57, 5, 60, 20);
        siteCombo.select(1);

        Label mrnNumber = new Label(oPatientSetComposite, SWT.NONE);
        mrnNumber.setText("number:");
        mrnNumber.setBounds(121, 9, 40, 20);

        mrnlistText = new Text(oPatientSetComposite, SWT.SINGLE | SWT.BORDER);
        mrnlistText.setBounds(164, 5, 150, 20);
        mrnlistText.setText("");

        Button runButton = new Button(oPatientSetComposite, SWT.PUSH);
        runButton.setText("Search By MRN");
        runButton.setBounds(315, 5, 85, 23);
        runButton.addSelectionListener(new SelectionAdapter() {
            @SuppressWarnings("unchecked")
            public void widgetSelected(SelectionEvent event) {
                String mrns = mrnlistText.getText();
                if (mrns.equals("")) {
                    return;
                }

                String[] mrnArray = mrns.split(",");
                int[] idlist = new int[mrnArray.length];
                String username = UserInfoBean.getInstance().getUserName();
                String password = UserInfoBean.getInstance().getUserPassword();
                // log.debug("User name: "+username+" password: "+password);
                String site = siteCombo.getText();
                for (int i = 0; i < mrnArray.length; i++) {
                    // String[] tmps = new String[2];
                    String tmp = mrnArray[i].replaceAll(" ", "");
                    // tmps = tmp.split(":");

                    String queryStr = "<?xml version=\"1.0\" standalone=\"yes\"?>\n" + "<search_by_local>"
                            + "<match_id site=\"" + site.toUpperCase()/* EMPI */
                            + "\">" + tmp/* 100016900 */
                            + "</match_id>\n" + "</search_by_local>";

                    String resultStr = QueryClient.query(queryStr, username, password);
                    log.debug(queryStr);
                    log.debug(resultStr);

                    SAXBuilder parser = new SAXBuilder();
                    String masterID = null;
                    java.io.StringReader xmlStringReader = new java.io.StringReader(resultStr);
                    try {
                        org.jdom.Document tableDoc = parser.build(xmlStringReader);
                        org.jdom.Element tableXml = tableDoc.getRootElement();
                        Element responseXml = (Element) tableXml.getChild("person_list");
                        // Element mrnXml = (Element)
                        // responseXml.getChild("MRN");
                        java.util.List listChildren = responseXml.getChildren();
                        if (listChildren.isEmpty()) {
                            MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                            mBox.setText("Please Note ...");
                            mBox.setMessage("No master id found");
                            mBox.open();
                            return;
                        }

                        Element masterXml = (Element) responseXml.getChild("master_record");
                        masterID = masterXml.getAttributeValue("id");
                        log.debug("Patient id: " + masterID);
                        idlist[i] = new Integer(masterID).intValue();
                        log.debug("MRN: " + site + "-" + tmp);
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }

                if (tabFolder.getSelectionIndex() == 1) {
                    DestroyMiniVisualization(oAwtContainer);
                } else if (tabFolder.getSelectionIndex() == 0) {
                    oTheParent.getDisplay().syncExec(new Runnable() {
                        public void run() {
                            tabFolder.setSelection(1);
                        }
                    });
                }

                PerformVisualizationQuery(oAwtContainer, idlist, bDisplayAllData);
            }
        });
    }

    DropTarget targetLable = new DropTarget(oModelQueryComposite, DND.DROP_COPY);
    targetLable.setTransfer(types);
    targetLable.addDropListener(new DropTargetAdapter() {
        @Override
        public void dragLeave(DropTargetEvent event) {
            super.dragLeave(event);
            oModelQueryComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
        }

        public void dragEnter(DropTargetEvent event) {
            event.detail = DND.DROP_COPY;
            oModelQueryComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
        }

        @SuppressWarnings("unchecked")
        public void drop(DropTargetEvent event) {
            if (event.data == null) {
                event.detail = DND.DROP_NONE;
                return;
            }

            try {
                SAXBuilder parser = new SAXBuilder();
                String xmlContent = (String) event.data;
                java.io.StringReader xmlStringReader = new java.io.StringReader(xmlContent);
                org.jdom.Document tableDoc = parser.build(xmlStringReader);
                org.jdom.Element tableXml = tableDoc.getRootElement().getChild("concepts",
                        Namespace.getNamespace("http://www.i2b2.org/xsd/cell/ont/1.1/"));

                if (tableXml != null) {
                    MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                    mBox.setText("Please Note ...");
                    mBox.setMessage("You can not drop this item here.");
                    mBox.open();
                    event.detail = DND.DROP_NONE;
                    return;
                }

                boolean isQuery = false;
                if (tableXml == null) {
                    tableXml = tableDoc.getRootElement().getChild("query_master",
                            Namespace.getNamespace("http://www.i2b2.org/xsd/cell/crc/psm/1.1/"));
                }

                if (tableXml != null) {
                    isQuery = true;
                } else {

                    MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                    mBox.setText("Please Note ...");
                    mBox.setMessage("You can not drop this item here.");
                    mBox.open();
                    event.detail = DND.DROP_NONE;
                    return;
                }

                if (isQuery) {
                    ArrayList<QueryModel> nodeXmls = new ArrayList<QueryModel>();
                    try {
                        JAXBUtil jaxbUtil = AnalysisJAXBUtil.getJAXBUtil();
                        QueryMasterData ndata = new QueryMasterData();
                        ndata.name(tableXml.getChildText("name"));
                        queryNamemrnlistText.setText("Query Name: " + ndata.name());
                        ndata.xmlContent(null);
                        ndata.id(tableXml.getChildTextTrim("query_master_id"));
                        ndata.userId(tableXml.getChildTextTrim("user_id"));

                        String xmlcontent = null;
                        String xmlrequest = null;

                        xmlrequest = ndata.writeDefinitionQueryXML();
                        lastRequestMessage(xmlrequest);

                        if (System.getProperty("webServiceMethod").equals("SOAP")) {
                            xmlcontent = CRCQueryClient.sendPDQQueryRequestSOAP(xmlrequest);
                        } else {
                            xmlcontent = CRCQueryClient.sendPDQQueryRequestREST(xmlrequest);
                        }
                        lastResponseMessage(xmlcontent);

                        if (xmlcontent == null) {

                            return;
                        } else {
                            log.debug("Query content response: " + xmlcontent);
                            ndata.xmlContent(xmlcontent);
                        }

                        JAXBElement jaxbElement = jaxbUtil.unMashallFromString(ndata.xmlContent());
                        ResponseMessageType messageType = (ResponseMessageType) jaxbElement.getValue();

                        BodyType bt = messageType.getMessageBody();
                        MasterResponseType masterResponseType = (MasterResponseType) new JAXBUnWrapHelper()
                                .getObjectByClass(bt.getAny(), MasterResponseType.class);
                        RequestXmlType requestXmlType = masterResponseType.getQueryMaster().get(0)
                                .getRequestXml();

                        org.w3c.dom.Element element = (org.w3c.dom.Element) requestXmlType.getContent().get(0);
                        if (element != null) {
                            log.debug("query definition not null");
                        } else {
                            log.error("query definition is null");
                        }

                        String domString = edu.harvard.i2b2.common.util.xml.XMLUtil
                                .convertDOMElementToString(element);
                        log.debug("string output" + domString);

                        JAXBContext jc1 = JAXBContext
                                .newInstance(edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory.class);
                        Unmarshaller unMarshaller = jc1.createUnmarshaller();
                        JAXBElement queryDefinitionJaxbElement = (JAXBElement) unMarshaller
                                .unmarshal(new StringReader(domString));

                        QueryDefinitionType queryDefinitionType = (QueryDefinitionType) queryDefinitionJaxbElement
                                .getValue();
                        int numOfPanels = queryDefinitionType.getPanel().size();
                        for (int i = 0; i < numOfPanels; i++) {
                            PanelType panelType = queryDefinitionType.getPanel().get(i);

                            for (int j = 0; j < panelType.getItem().size(); j++) {
                                ItemType itemType = panelType.getItem().get(j);
                                QueryModel nodedata = new QueryModel();

                                nodedata.name(itemType.getItemName());
                                nodedata.visualAttribute("FA");
                                nodedata.tooltip(itemType.getTooltip());
                                nodedata.fullname(itemType.getItemKey());
                                nodedata.hlevel(new Integer(itemType.getHlevel()).toString());

                                if (itemType.getItemShape() != null) {
                                    nodedata.tableRow().height = new String(itemType.getItemShape());
                                    nodedata.tableRow().color = ((ConceptTableModel) table.getModel())
                                            .getColor(itemType.getItemColor());
                                    nodedata.tableRow().rowNumber = Integer
                                            .parseInt(itemType.getItemRowNumber());
                                } else {
                                    nodedata.tableRow().height = "Medium";
                                    nodedata.tableRow().color = new RGB(0, 0, 128);
                                    nodedata.tableRow().rowNumber = j + 1;
                                }

                                nodedata.constrainByValue(itemType.getConstrainByValue());
                                if (itemType.getConstrainByValue().size() > 0) {
                                    nodedata.setValueConstrains(itemType.getConstrainByValue());

                                    if (itemType.getConstrainByValue().size() > 0) {
                                        nodedata.setValueConstrains(itemType.getConstrainByValue());
                                        if (nodedata.valueModel().hasEnumValue()) {
                                            if (nodedata.valueModel().useTextValue()) {
                                                ArrayList<String> results = new ArrayList<String>();
                                                results.toArray(nodedata.valueModel().value().split(","));
                                                nodedata.valueModel().selectedValues = results;
                                            }
                                        }
                                    }
                                }

                                // Handle Constrain By Dates
                                for (int u = 0; u < itemType.getConstrainByDate().size(); u++) {
                                    nodedata.setTimeConstrain(
                                            itemType.getConstrainByDate().get(u).getDateFrom(),
                                            itemType.getConstrainByDate().get(u).getDateTo());
                                }

                                String status = nodedata.setXmlContent();
                                if (status.equalsIgnoreCase("error")) {
                                    MessageBox mBox = new MessageBox(table.getShell(),
                                            SWT.ICON_INFORMATION | SWT.OK);
                                    mBox.setText("Please Note ...");
                                    mBox.setMessage(
                                            "Response delivered from the remote server could not be understood,\n"
                                                    + "you may wish to retry your last action.");
                                    mBox.open();
                                    event.detail = DND.DROP_NONE;

                                    return;
                                }
                                nodeXmls.add(nodedata);
                            }
                        }
                        populateTable(nodeXmls);

                        // get query instance
                        String xmlRequest = ndata.writeContentQueryXML();
                        lastRequestMessage(xmlRequest);
                        String xmlResponse = CRCQueryClient.sendPDQQueryRequestREST(xmlRequest);
                        lastResponseMessage(xmlResponse);

                        jaxbElement = jaxbUtil.unMashallFromString(xmlResponse);
                        messageType = (ResponseMessageType) jaxbElement.getValue();
                        bt = messageType.getMessageBody();
                        InstanceResponseType instanceResponseType = (InstanceResponseType) new JAXBUnWrapHelper()
                                .getObjectByClass(bt.getAny(), InstanceResponseType.class);

                        QueryInstanceData instanceData = null;
                        XMLGregorianCalendar startDate = null;
                        for (QueryInstanceType queryInstanceType : instanceResponseType.getQueryInstance()) {
                            QueryInstanceData runData = new QueryInstanceData();

                            runData.visualAttribute("FA");
                            runData.tooltip("The results of the query run");
                            runData.id(new Integer(queryInstanceType.getQueryInstanceId()).toString());
                            XMLGregorianCalendar cldr = queryInstanceType.getStartDate();
                            runData.name("Results of " + "[" + cldr.getMonth() + "-" + cldr.getDay() + "-"
                                    + cldr.getYear() + " " + cldr.getHour() + ":" + cldr.getMinute() + ":"
                                    + cldr.getSecond() + "]");

                            if (instanceData == null) {
                                startDate = cldr;
                                instanceData = runData;
                            } else {
                                if (cldr.toGregorianCalendar().compareTo(startDate.toGregorianCalendar()) > 0) {
                                    startDate = cldr;
                                    instanceData = runData;
                                }
                            }
                        }
                        // get patient set
                        if (instanceData == null) {
                            event.detail = DND.DROP_NONE;
                            return;
                        }
                        log.debug("Got query instance: " + instanceData.name());

                        xmlRequest = instanceData.writeContentQueryXML();
                        lastRequestMessage(xmlRequest);

                        xmlResponse = CRCQueryClient.sendPDQQueryRequestREST(xmlRequest);
                        lastResponseMessage(xmlResponse);

                        jaxbElement = jaxbUtil.unMashallFromString(xmlResponse);
                        messageType = (ResponseMessageType) jaxbElement.getValue();
                        bt = messageType.getMessageBody();
                        ResultResponseType resultResponseType = (ResultResponseType) new JAXBUnWrapHelper()
                                .getObjectByClass(bt.getAny(), ResultResponseType.class);

                        for (QueryResultInstanceType queryResultInstanceType : resultResponseType
                                .getQueryResultInstance()) {
                            if (!(queryResultInstanceType.getQueryResultType().getName()
                                    .equalsIgnoreCase("PATIENTSET"))) {
                                continue;
                            }

                            String status = queryResultInstanceType.getQueryStatusType().getName();

                            if (status.equalsIgnoreCase("FINISHED")) {

                                String setId = new Integer(queryResultInstanceType.getResultInstanceId())
                                        .toString();
                                String setSize = new Integer(queryResultInstanceType.getSetSize()).toString();
                                patientSetText.setText("Patient Set: " + setSize + " patients");
                                patientRefId = new String(setId);
                                patientMinNumText.setText("1");
                                leftArrowButton.setEnabled(false);

                                int maxPatientNum = new Integer(patientMaxNumText.getText()).intValue();
                                patientSetSize = queryResultInstanceType.getSetSize();
                                if (patientSetSize > maxPatientNum) {
                                    rightArrowButton.setEnabled(true);
                                    patientMaxNumText.setText("10");
                                } else {
                                    rightArrowButton.setEnabled(false);
                                    if (patientSetSize > 0) {
                                        patientMaxNumText.setText(setSize);
                                    }
                                }

                                log.debug("Dropped set of: " + setSize + " patients"/* strs[0] */
                                        + " with refId: " + setId/*
                                                                 * strs[ 1 ]
                                                                 */);
                            } else {
                                // message
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        return;
                    }
                } /*
                  * else { List conceptChildren = tableXml.getChildren();
                  * parseDropConcepts(conceptChildren, event);
                  * table.redraw(); }
                  */

                event.detail = DND.DROP_NONE;
            } catch (JDOMException e) {
                System.err.println(e.getMessage());
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("You can not drop this item here.");
                mBox.open();
                event.detail = DND.DROP_NONE;
                e.printStackTrace();
                return;
            } catch (Exception e) {
                System.err.println(e.getMessage());
                event.detail = DND.DROP_NONE;
                e.printStackTrace();
                return;
            }
        }
    });

    // create drag source
    DragSource source1 = new DragSource(groupNameText, DND.DROP_COPY);
    source1.setTransfer(types);
    source1.addDragListener(new DragSourceAdapter() {

        @Override
        public void dragSetData(DragSourceEvent event) {

            ConceptTableModel i2b2Model = (ConceptTableModel) table.getModel();
            i2b2Model.fillDataFromTable(rowData);
            if (rowData.size() == 0) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("The set up table is empty.");
                mBox.open();
                return;
            }

            StringWriter strWriter = new StringWriter();
            DndType dndType = new DndType();
            edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory pdoFactory = new edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory();
            PanelType panelType = new PanelType();
            panelType.setInvert(0);
            PanelType.TotalItemOccurrences totalOccurrences = new PanelType.TotalItemOccurrences();
            totalOccurrences.setValue(1);
            panelType.setTotalItemOccurrences(totalOccurrences);
            panelType.setPanelNumber(0 + 1);
            // panelType.setName(panelData.getItems().get(0).name() + "_"
            // + generateMessageId().substring(0, 4));
            panelType.setName("Panel-1");

            // TO DO: get table rows and fill the panel object
            for (int i = 1; i < i2b2Model.getRowCount(); i++) {
                QueryModel node = (QueryModel) i2b2Model.getContentAt(7, i);
                ItemType itemType = new ItemType();
                itemType.setItemKey(node.fullname());
                itemType.setItemName(node.name());
                itemType.setTooltip(node.tooltip());
                itemType.setHlevel(Integer.parseInt(node.hlevel()));
                itemType.setClazz("ENC");
                itemType.setItemIcon(node.visualAttribute().trim());
                itemType.setItemColor(i2b2Model.getColorString((RGB) i2b2Model.getContentAt(5, i)));
                itemType.setItemRowNumber((String) i2b2Model.getContentAt(0, i));
                itemType.setItemShape((String) i2b2Model.getContentAt(4, i));

                itemType.getConstrainByValue().add(node.valueModel().writeValueConstrain());
                itemType.getConstrainByDate().add(node.writeTimeConstrain());

                panelType.getItem().add(itemType);
            }

            dndType.getAny().add(pdoFactory.createPanel(panelType));
            edu.harvard.i2b2.crcxmljaxb.datavo.dnd.ObjectFactory dndFactory = new edu.harvard.i2b2.crcxmljaxb.datavo.dnd.ObjectFactory();
            try {
                AnalysisJAXBUtil.getJAXBUtil().marshaller(dndFactory.createPluginDragDrop(dndType), strWriter);
            } catch (JAXBUtilException e) {
                e.printStackTrace();
            }

            // put the data into the event
            event.data = strWriter.toString();
        }

    });

    DropTarget nameTarget = new DropTarget(groupNameText, DND.DROP_COPY);
    nameTarget.setTransfer(types);
    nameTarget.addDropListener(new DropTargetAdapter() {

        @Override
        public void dragLeave(DropTargetEvent event) {
            super.dragLeave(event);
            oModelGroupComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
        }

        @SuppressWarnings("unchecked")
        public void drop(DropTargetEvent event) {
            if (event.data == null) {
                event.detail = DND.DROP_NONE;
                return;
            }
            ArrayList<QueryModel> nodeXmls = new ArrayList<QueryModel>();
            try {
                SAXBuilder parser = new SAXBuilder();
                String xmlContent = (String) event.data;
                java.io.StringReader xmlStringReader = new java.io.StringReader(xmlContent);
                org.jdom.Document panelDoc = parser.build(xmlStringReader);
                org.jdom.Element panelXml = panelDoc.getRootElement().getChild("panel",
                        Namespace.getNamespace("http://www.i2b2.org/xsd/cell/crc/psm/querydefinition/1.1/"));

                if (panelXml == null) {
                    MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                    mBox.setText("Please Note ...");
                    mBox.setMessage("You can not drop this item here.");
                    mBox.open();
                    event.detail = DND.DROP_NONE;
                    return;
                }

                else {

                    String domString = (new XMLOutputter()).outputString(panelXml);
                    JAXBContext jc1 = JAXBContext
                            .newInstance(edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory.class);
                    Unmarshaller unMarshaller = jc1.createUnmarshaller();
                    JAXBElement panelJaxbElement = (JAXBElement) unMarshaller
                            .unmarshal(new StringReader(domString));

                    PanelType panelType = (PanelType) panelJaxbElement.getValue();
                    String panelname = panelType.getName();
                    groupNameText.setText("Panel Name: " + panelname);
                    for (int j = 0; j < panelType.getItem().size(); j++) {
                        ItemType itemType = panelType.getItem().get(j);
                        QueryModel nodedata = new QueryModel();

                        nodedata.name(itemType.getItemName());
                        nodedata.visualAttribute("FA");
                        nodedata.tooltip(itemType.getTooltip());
                        nodedata.fullname(itemType.getItemKey());
                        nodedata.hlevel(new Integer(itemType.getHlevel()).toString());

                        // / need to handle query tool generated panels
                        if (itemType.getItemShape() != null) {
                            nodedata.tableRow().height = new String(itemType.getItemShape());
                            nodedata.tableRow().color = ((ConceptTableModel) table.getModel())
                                    .getColor(itemType.getItemColor());
                            nodedata.tableRow().rowNumber = Integer.parseInt(itemType.getItemRowNumber());
                        } else {
                            nodedata.tableRow().height = "Medium";
                            nodedata.tableRow().color = new RGB(0, 0, 128);
                            nodedata.tableRow().rowNumber = j + 1;
                        }

                        nodedata.constrainByValue(itemType.getConstrainByValue());
                        if (itemType.getConstrainByValue().size() > 0) {
                            nodedata.setValueConstrains(itemType.getConstrainByValue());

                            if (itemType.getConstrainByValue().size() > 0) {
                                nodedata.setValueConstrains(itemType.getConstrainByValue());
                                if (nodedata.valueModel().hasEnumValue()) {
                                    if (nodedata.valueModel().useTextValue()) {
                                        ArrayList<String> results = new ArrayList<String>();
                                        results.toArray(nodedata.valueModel().value().split(","));
                                        nodedata.valueModel().selectedValues = results;
                                    }
                                }
                            }
                        }

                        // Handle Constrain By Dates
                        for (int u = 0; u < itemType.getConstrainByDate().size(); u++) {
                            nodedata.setTimeConstrain(itemType.getConstrainByDate().get(u).getDateFrom(),
                                    itemType.getConstrainByDate().get(u).getDateTo());
                        }

                        String status = nodedata.setXmlContent();
                        if (status.equalsIgnoreCase("error")) {
                            MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                            mBox.setText("Please Note ...");
                            mBox.setMessage(
                                    "Response delivered from the remote server could not be understood,\n"
                                            + "you may wish to retry your last action.");
                            mBox.open();
                            event.detail = DND.DROP_NONE;

                            return;
                        }
                        nodeXmls.add(nodedata);
                    }
                    // event.detail = DND.DROP_NONE;
                }
                populateTable(nodeXmls);

            }

            catch (JDOMException e) {
                System.err.println(e.getMessage());
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("You can not drop this item here.");
                mBox.open();
                event.detail = DND.DROP_NONE;
                e.printStackTrace();
                return;
            } catch (Exception e) {
                System.err.println(e.getMessage());
                event.detail = DND.DROP_NONE;
                e.printStackTrace();
                return;
            }
        }

        public void dragEnter(DropTargetEvent event) {
            TextTransfer textTransfer = TextTransfer.getInstance();
            if (textTransfer.isSupportedType(event.currentDataType)) {

                event.detail = DND.DROP_COPY;
            }

            oModelGroupComposite.setForeground(oTheParent.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
        }
    });

    DropTarget target = new DropTarget(table, DND.DROP_COPY);
    target.setTransfer(types);
    target.addDropListener(new DropTargetAdapter() {
        @SuppressWarnings("unchecked")
        public void drop(DropTargetEvent event) {
            if (event.data == null) {
                event.detail = DND.DROP_NONE;
                return;
            }

            try {
                SAXBuilder parser = new SAXBuilder();
                String xmlContent = (String) event.data;
                java.io.StringReader xmlStringReader = new java.io.StringReader(xmlContent);
                org.jdom.Document tableDoc = parser.build(xmlStringReader);
                org.jdom.Element tableXml = tableDoc.getRootElement().getChild("concepts",
                        Namespace.getNamespace("http://www.i2b2.org/xsd/cell/ont/1.1/"));

                boolean isQuery = false;
                if (tableXml == null) {
                    MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                    mBox.setText("Please Note ...");
                    mBox.setMessage("You can not drop this item here.");
                    mBox.open();
                    event.detail = DND.DROP_NONE;
                    return;
                }

                if (isQuery) {
                    ArrayList<QueryModel> nodeXmls = new ArrayList<QueryModel>();
                    try {
                        JAXBUtil jaxbUtil = AnalysisJAXBUtil.getJAXBUtil();
                        QueryMasterData ndata = new QueryMasterData();
                        ndata.name(tableXml.getChildText("name"));
                        queryNamemrnlistText.setText(ndata.name());
                        ndata.xmlContent(null);
                        ndata.id(tableXml.getChildTextTrim("query_master_id"));
                        ndata.userId(tableXml.getChildTextTrim("user_id"));

                        String xmlcontent = null;
                        String xmlrequest = null;

                        xmlrequest = ndata.writeDefinitionQueryXML();
                        lastRequestMessage(xmlrequest);

                        if (System.getProperty("webServiceMethod").equals("SOAP")) {
                            xmlcontent = CRCQueryClient.sendPDQQueryRequestSOAP(xmlrequest);
                        } else {
                            xmlcontent = CRCQueryClient.sendPDQQueryRequestREST(xmlrequest);
                        }
                        lastResponseMessage(xmlcontent);

                        if (xmlcontent == null) {

                            return;
                        } else {
                            log.debug("Query content response: " + xmlcontent);
                            ndata.xmlContent(xmlcontent);
                        }

                        JAXBElement jaxbElement = jaxbUtil.unMashallFromString(ndata.xmlContent());
                        ResponseMessageType messageType = (ResponseMessageType) jaxbElement.getValue();

                        BodyType bt = messageType.getMessageBody();
                        MasterResponseType masterResponseType = (MasterResponseType) new JAXBUnWrapHelper()
                                .getObjectByClass(bt.getAny(), MasterResponseType.class);
                        RequestXmlType requestXmlType = masterResponseType.getQueryMaster().get(0)
                                .getRequestXml();

                        org.w3c.dom.Element element = (org.w3c.dom.Element) requestXmlType.getContent().get(0);
                        if (element != null) {
                            log.debug("query definition not null");
                        } else {
                            log.error("query definition is null");
                        }

                        String domString = edu.harvard.i2b2.common.util.xml.XMLUtil
                                .convertDOMElementToString(element);
                        log.debug("string output" + domString);

                        JAXBContext jc1 = JAXBContext
                                .newInstance(edu.harvard.i2b2.crcxmljaxb.datavo.psm.query.ObjectFactory.class);
                        Unmarshaller unMarshaller = jc1.createUnmarshaller();
                        JAXBElement queryDefinitionJaxbElement = (JAXBElement) unMarshaller
                                .unmarshal(new StringReader(domString));

                        QueryDefinitionType queryDefinitionType = (QueryDefinitionType) queryDefinitionJaxbElement
                                .getValue();
                        int numOfPanels = queryDefinitionType.getPanel().size();
                        for (int i = 0; i < numOfPanels; i++) {
                            PanelType panelType = queryDefinitionType.getPanel().get(i);

                            for (int j = 0; j < panelType.getItem().size(); j++) {
                                ItemType itemType = panelType.getItem().get(j);
                                QueryModel nodedata = new QueryModel();

                                nodedata.name(itemType.getItemName());
                                nodedata.visualAttribute("FA");
                                nodedata.tooltip(itemType.getTooltip());
                                nodedata.fullname(itemType.getItemKey());
                                nodedata.hlevel(new Integer(itemType.getHlevel()).toString());

                                String status = nodedata.setXmlContent();
                                if (status.equalsIgnoreCase("error")) {
                                    MessageBox mBox = new MessageBox(table.getShell(),
                                            SWT.ICON_INFORMATION | SWT.OK);
                                    mBox.setText("Please Note ...");
                                    mBox.setMessage(
                                            "Response delivered from the remote server could not be understood,\n"
                                                    + "you may wish to retry your last action.");
                                    mBox.open();
                                    event.detail = DND.DROP_NONE;

                                    return;
                                }
                                nodeXmls.add(nodedata);
                            }
                        }
                        populateTable(nodeXmls);

                        // get query instance
                        String xmlRequest = ndata.writeContentQueryXML();
                        lastRequestMessage(xmlRequest);
                        // log.debug(xmlRequest);
                        String xmlResponse = CRCQueryClient.sendPDQQueryRequestREST(xmlRequest);
                        lastResponseMessage(xmlResponse);

                        jaxbElement = jaxbUtil.unMashallFromString(xmlResponse);
                        messageType = (ResponseMessageType) jaxbElement.getValue();
                        bt = messageType.getMessageBody();
                        InstanceResponseType instanceResponseType = (InstanceResponseType) new JAXBUnWrapHelper()
                                .getObjectByClass(bt.getAny(), InstanceResponseType.class);

                        QueryInstanceData instanceData = null;
                        XMLGregorianCalendar startDate = null;
                        for (QueryInstanceType queryInstanceType : instanceResponseType.getQueryInstance()) {
                            QueryInstanceData runData = new QueryInstanceData();

                            runData.visualAttribute("FA");
                            runData.tooltip("The results of the query run");
                            runData.id(new Integer(queryInstanceType.getQueryInstanceId()).toString());
                            XMLGregorianCalendar cldr = queryInstanceType.getStartDate();
                            runData.name("Results of " + "[" + cldr.getMonth() + "-" + cldr.getDay() + "-"
                                    + cldr.getYear() + " " + cldr.getHour() + ":" + cldr.getMinute() + ":"
                                    + cldr.getSecond() + "]");

                            if (instanceData == null) {
                                startDate = cldr;
                                instanceData = runData;
                            } else {
                                if (cldr.toGregorianCalendar().compareTo(startDate.toGregorianCalendar()) > 0) {
                                    startDate = cldr;
                                    instanceData = runData;
                                }
                            }
                        }
                        // get patient set
                        if (instanceData == null) {
                            event.detail = DND.DROP_NONE;
                            return;
                        }
                        log.debug("Got query instance: " + instanceData.name());

                        xmlRequest = instanceData.writeContentQueryXML();
                        lastRequestMessage(xmlRequest);

                        xmlResponse = CRCQueryClient.sendPDQQueryRequestREST(xmlRequest);
                        lastResponseMessage(xmlResponse);

                        jaxbElement = jaxbUtil.unMashallFromString(xmlResponse);
                        messageType = (ResponseMessageType) jaxbElement.getValue();
                        bt = messageType.getMessageBody();
                        ResultResponseType resultResponseType = (ResultResponseType) new JAXBUnWrapHelper()
                                .getObjectByClass(bt.getAny(), ResultResponseType.class);

                        for (QueryResultInstanceType queryResultInstanceType : resultResponseType
                                .getQueryResultInstance()) {
                            if (!(queryResultInstanceType.getQueryResultType().getName()
                                    .equalsIgnoreCase("PATIENTSET"))) {
                                continue;
                            }

                            String status = queryResultInstanceType.getQueryStatusType().getName();

                            if (status.equalsIgnoreCase("FINISHED")) {
                                // resultData.name("Patient Set - "+resultData
                                // .patientCount()+" Patients");
                                // QueryResultData resultData = new
                                // QueryResultData();
                                String setId = new Integer(queryResultInstanceType.getResultInstanceId())
                                        .toString();
                                String setSize = new Integer(queryResultInstanceType.getSetSize()).toString();
                                patientSetText.setText("Patient Set: " + setSize + " patients");// strs[0]);
                                patientRefId = new String(setId);// strs[1]);
                                patientMinNumText.setText("1");
                                leftArrowButton.setEnabled(false);

                                int maxPatientNum = new Integer(patientMaxNumText.getText()).intValue();
                                patientSetSize = queryResultInstanceType.getSetSize();
                                if (patientSetSize > maxPatientNum) {
                                    rightArrowButton.setEnabled(true);
                                    patientMaxNumText.setText("10");
                                } else {
                                    rightArrowButton.setEnabled(false);
                                    if (patientSetSize > 0) {
                                        patientMaxNumText.setText(setSize);
                                    }
                                }

                                log.debug("Dropped set of: " + setSize + " patients"/* strs[0] */
                                        + " with refId: " + setId/*
                                                                 * strs[ 1 ]
                                                                 */);
                            } else {
                                // message
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        return;
                    }
                } else {
                    List conceptChildren = tableXml.getChildren();
                    parseDropConcepts(conceptChildren, event);
                    // System.setProperty("XMLfrommodel",(String)
                    // event.data);
                    table.redraw();
                }

                event.detail = DND.DROP_NONE;
            } catch (JDOMException e) {
                System.err.println(e.getMessage());
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("You can not drop this item here.");
                mBox.open();
                event.detail = DND.DROP_NONE;
                e.printStackTrace();
                return;
            } catch (Exception e) {
                System.err.println(e.getMessage());
                event.detail = DND.DROP_NONE;
                e.printStackTrace();
                return;
            }
        }

        public void dragEnter(DropTargetEvent event) {
            event.detail = DND.DROP_COPY;
        }
    });

    DropTarget target1 = new DropTarget(patientSetText, DND.DROP_COPY);
    target1.setTransfer(types);
    target1.addDropListener(new DropTargetAdapter() {
        @SuppressWarnings("unchecked")
        public void drop(DropTargetEvent event) {
            if (event.data == null) {
                event.detail = DND.DROP_NONE;
                return;
            }

            String tmp = patientSetText.getText();
            String dragStr = (String) event.data;
            String[] strs = dragStr.split(":");
            if (strs[0].equalsIgnoreCase("logicquery")) {
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("You can not drop this item here. It accepts a patient set only.");
                mBox.open();
                event.detail = DND.DROP_NONE;
                patientSetText.setText(tmp);
                return;
            }

            JAXBUtil jaxbUtil = AnalysisJAXBUtil.getJAXBUtil();

            try {
                JAXBElement jaxbElement = jaxbUtil.unMashallFromString(dragStr);
                DndType dndType = (DndType) jaxbElement.getValue();
                QueryResultInstanceType queryResultInstanceType = (QueryResultInstanceType) new JAXBUnWrapHelper()
                        .getObjectByClass(dndType.getAny(), QueryResultInstanceType.class);

                if (queryResultInstanceType == null) {
                    MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                    mBox.setText("Please Note ...");
                    mBox.setMessage("You can not drop this item here. It accepts a patient set only.");
                    mBox.open();
                    event.detail = DND.DROP_NONE;
                    patientSetText.setText(tmp);
                    return;
                }

                String resultTypeName = queryResultInstanceType.getQueryResultType().getName();
                if (resultTypeName == null || !resultTypeName.equalsIgnoreCase("PATIENTSET")) {
                    MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                    mBox.setText("Please Note ...");
                    mBox.setMessage("You can not drop this item here. It accepts a patient set only.");
                    mBox.open();
                    event.detail = DND.DROP_NONE;
                    patientSetText.setText(tmp);
                    return;
                }

                String setId = queryResultInstanceType.getResultInstanceId();
                String setSize = new Integer(queryResultInstanceType.getSetSize()).toString();
                patientSetText.setText("Patient Set: " + setSize + " patients");// strs[0]);
                patientRefId = new String(setId);// strs[1]);
                patientMinNumText.setText("1");
                leftArrowButton.setEnabled(false);

                int maxPatientNum = new Integer(patientMaxNumText.getText()).intValue();
                patientSetSize = queryResultInstanceType.getSetSize();
                if (patientSetSize > maxPatientNum) {
                    rightArrowButton.setEnabled(true);
                    patientMaxNumText.setText("10");
                } else {
                    rightArrowButton.setEnabled(false);
                    // if(patientSetSize>0) {
                    // patientMaxNumText.setText(setSize);
                    // }
                }

                log.debug("Dropped set of: " + setSize + " patients"/*
                                                                    * strs[0
                                                                    * ]
                                                                    */
                        + " with refId: " + setId/* strs[1] */);
            } catch (Exception e) {
                e.printStackTrace();
                event.detail = DND.DROP_NONE;
                return;
            }
        }

        public void dragEnter(DropTargetEvent event) {
            event.detail = DND.DROP_COPY;
        }
    });

    table.addCellResizeListener(new KTableCellResizeListener() {
        public void columnResized(int col, int newWidth) {
            log.debug("Column " + col + " resized to " + newWidth);
        }

        public void rowResized(int newHeight) {
            log.debug("Rows resized to " + newHeight);
        }

    });

    table.addListener(SWT.Resize, new Listener() {
        public void handleEvent(Event event) {
            int tableWidth = table.getBounds().width;
            table.getModel().setColumnWidth(1, tableWidth - 425);
        }
    });

    table.addMouseTrackListener(new MouseTrackListener() {

        public void mouseEnter(MouseEvent arg0) {

        }

        public void mouseExit(MouseEvent arg0) {

        }

        public void mouseHover(MouseEvent arg0) {
            MouseEvent evt = arg0;

            Rectangle rect = table.getCellRect(3, getRowNumber());
            Rectangle rect1 = table.getCellRect(5, 1);

            // System.out.println("rect X and width: "+rect.x+","+rect.width)
            // ;
            // System.out.println("mouse X and Y: "+evt.x+","+evt.y);
            if (evt.y < rect.y && evt.x > rect1.x && evt.x < rect1.x + rect1.width) {
                table.setToolTipText("Double click the cell to change color.");
            } else {
                table.setToolTipText("");
            }
        }

    });

    // Item 2: a Color Palette
    TabItem item2 = new TabItem(tabFolder, SWT.NONE);
    item2.setText("Render a Timeline");
    final Composite comp2 = new Composite(tabFolder, SWT.NONE);
    item2.setControl(comp2);

    GridLayout oGridLayout0 = new GridLayout();
    oGridLayout0.marginWidth = 1;
    oGridLayout0.marginHeight = 5;
    comp2.setLayout(oGridLayout0);

    if (false) {
        Composite composite = new Composite(comp2, SWT.NO_BACKGROUND | SWT.EMBEDDED);

        /*
         * Set a Windows specific AWT property that prevents heavyweight
         * components from erasing their background. Note that this is a
         * global property and cannot be scoped. It might not be suitable
         * for your application.
         */
        try {
            // System.setProperty("sun.awt.noerasebackground", "true");
        } catch (NoSuchMethodError error) {
        }

        /* Create and setting up frame */
        ////for mac fix
        //if ( System.getProperty("os.name").toLowerCase().startsWith("mac"))
        //SWT_AWT.embeddedFrameClass = "sun.lwawt.macosx.CViewEmbeddedFrame";
        Frame frame = SWT_AWT.new_Frame(composite);
        Panel panel = new Panel(new BorderLayout()) {
            public void update(java.awt.Graphics g) {
                /* Do not erase the background */
                paint(g);
            }
        };
        frame.add(panel);
        JRootPane root = new JRootPane();
        panel.add(root);
        java.awt.Container contentPane = root.getContentPane();
        log.debug("got to here");

        record record1 = new record();
        record1.start();
        record1.init();

        JScrollPane scrollPane = new JScrollPane(record1);
        contentPane.setLayout(new BorderLayout());
        contentPane.add(scrollPane);
    }

    if (true) {
        Composite composite = new Composite(comp2, SWT.NO_BACKGROUND | SWT.EMBEDDED);
        GridData gridData3 = new GridData();
        gridData3.horizontalIndent = 0;
        gridData3.verticalIndent = 0;
        gridData3.horizontalAlignment = GridData.FILL;
        gridData3.verticalAlignment = GridData.FILL;
        gridData3.grabExcessHorizontalSpace = true;
        gridData3.grabExcessVerticalSpace = true;
        composite.setLayoutData(gridData3);
        /* Create and setting up frame */
        ////for mac fix
        //if ( System.getProperty("os.name").toLowerCase().startsWith("mac"))
        //SWT_AWT.embeddedFrameClass = "sun.lwawt.macosx.CViewEmbeddedFrame";
        Frame frame = SWT_AWT.new_Frame(composite);
        Panel panel = new Panel(new BorderLayout());// {

        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            log.debug("Error setting native LAF: " + e);
        }

        frame.add(panel);
        JRootPane root = new JRootPane();
        panel.add(root);
        oAwtContainer = root.getContentPane();
        log.debug("got to here");
    }

    tabFolder.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {

            ConceptTableModel i2b2Model = (ConceptTableModel) table.getModel();
            i2b2Model.fillDataFromTable(rowData);
            if (rowData.size() == 0) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("The set up table is empty.");
                mBox.open();
                return;
            }

            String patientSetStr = patientSetText.getText();
            if (patientSetStr.equals("") && !isAll) {
                oTheParent.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        tabFolder.setSelection(0);
                    }
                });
                MessageBox mBox = new MessageBox(table.getShell(), SWT.ICON_INFORMATION | SWT.OK);
                mBox.setText("Please Note ...");
                mBox.setMessage("Please set a patient set or choose all datamart option.");
                mBox.open();
                return;
            }

            if (tabFolder.getSelectionIndex() == 1) {
                if (patientSetStr.equalsIgnoreCase("All")) {
                    int minPatient = 0;
                    try {
                        String minText = patientMinNumText.getText();
                        minPatient = Integer.parseInt(minText);
                    } catch (Exception e1) {
                        minPatient = -1;
                    }

                    int maxPatient = 0;
                    try {
                        maxPatient = Integer.parseInt(patientMaxNumText.getText());
                    } catch (Exception e2) {
                        maxPatient = -1;
                    }
                    PerformVisualizationQuery(oAwtContainer, "All", minPatient, maxPatient, bDisplayAllData);
                } else {
                    int min = Integer.parseInt(patientMinNumText.getText());
                    int max = Integer.parseInt(patientMaxNumText.getText());
                    PerformVisualizationQuery(oAwtContainer, patientRefId, min, max, bDisplayAllData);
                }
            } else {
                DestroyMiniVisualization(oAwtContainer);
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }
    });

    if (drawLeft) {
        horizontalForm.setWeights(new int[] { 30, 70 });
    }

    return parent;
}