PlotTable.cxx
Go to the documentation of this file.
1 
12 #include "PlotTable.h"
13 
14 #include "CanvasView.h"
15 #include "PlotTableEvent.h"
16 #include "QtView.h"
17 
18 #include "datareps/DataRep.h"
19 #include "graphics/ViewBase.h"
20 #include "plotters/PlotterBase.h"
21 
22 #include <qapplication.h>
23 #include <qpushbutton.h>
24 #if QT_VERSION < 0x040000
25 #include <qlistview.h>
26 #else
27 #include <q3listview.h>
28 #endif
29 
30 #include <qstring.h>
31 
32 #include <vector>
33 
34 using std::string;
35 using std::vector;
36 
37 using namespace hippodraw;
38 
41  : PlotTableBase (),
42  m_observer ( 0 ),
43  m_browser_mode ( false )
44 {
45 }
46 
47 void
49 setCanvas ( CanvasView * canvas )
50 {
51  m_canvas_view = canvas;
52  initialize ();
53 }
54 
55 void
58 {
60 
61  const vector < const ViewBase * > & views = m_canvas_view->views ();
62  vector < const ViewBase * > :: const_iterator first = views.begin ();
63 
64  while ( first != views.end () ) {
65  const ViewBase * view = *first++;
66  const PlotterBase * plotter = view->getPlotter ();
67  QString title ( plotter->getTitle ().c_str() );
68  QString x_axis ( plotter->getLabel ( Axes::X ).c_str() );
69  QString y_axis ( plotter->getLabel ( Axes::Y ).c_str() );
70  QString z_axis ( QString::null );
71  if ( plotter->hasAxis ( Axes::Z ) ) {
72  const string & z = plotter->getLabel ( Axes::Z );
73  z_axis = z.c_str();
74  }
75  const DataRep * rep = plotter->getDataRep ( 0 );
76  const string & t = rep->name ();
77  QString type ( t.c_str() );
78 
79 #if QT_VERSION < 0x040000
82  title, type,
83  x_axis, y_axis, z_axis );
84  m_view_map [ item ] = view;
85 #else
86  Q3ListViewItem * item
87  = new Q3ListViewItem ( m_plot_table,
88  title, type,
89  x_axis, y_axis, z_axis );
90  m_view_map [ item ] = view;
91 #endif
92  }
93 }
94 
95 void
96 PlotTable::
97 #if QT_VERSION < 0x040000
98 selectionChanged ( QListViewItem * item )
99 #else
100 selectionChanged ( Q3ListViewItem * item )
101 #endif
102 {
103  const ViewBase * view = m_view_map [ item ];
104  ViewBase * v = const_cast < ViewBase * > ( view );
105  QtView * vv = dynamic_cast < QtView * > ( v );
106 
107  m_canvas_view -> setSelectedItem ( vv );
108  m_canvas_view -> ensureVisible ( vv );
109  if ( m_browser_mode ) {
110  copyButton -> setEnabled ( true );
111  }
112 }
113 
114 void
116 setBrowserMode ( bool yes, QWidget * observer )
117 {
119  m_observer = observer;
120  if ( yes == false ) copyButton -> setEnabled ( yes );
121 }
122 
123 void
126 {
127  m_canvas_view -> copySelectedToPasteboard ();
128 
131 }
132 
133 void
136 {
137  if ( m_browser_mode ) {
140  }
141  m_browser_mode = false;
142 }
m_canvas_view ensureVisible(vv)
m_canvas_view setSelectedItem(vv)
QListViewItem * item
Definition: PickTable.cxx:172
hippodraw::PlotTable class interface
A derived class of QCustomEvent PlotTable events.
This class implements additional FigureEditor functionality particular to QtView objects.
Definition: CanvasView.h:96
void setCanvas(CanvasView *canvas)
Sets the canvas to be used by the table.
Definition: PlotTable.cxx:49
const std::string & name() const
Returns the name of the display.
Definition: DataRep.cxx:72
PlotTable()
The default constructor.
Definition: PlotTable.cxx:40
hippodraw::DataRep class interface.
hippodraw::CanvasView class interface
QWidget * m_observer
The Window that initiated the browsing, if any.
Definition: PlotTable.h:71
virtual const std::string & getLabel(Axes::Type) const
Returns the label for the specified axis.
return rep
Definition: Inspector.cxx:3843
postEvent(QObject *receiver, QEvent *event)
const std::string & getTitle() const
Gets the title to be displayed.
return yes
Definition: CanvasView.cxx:883
QPushButton * copyButton
Definition: PlotTableBase.h:36
The base class for the PlotterBase hierarchy.
Definition: PlotterBase.h:55
PlotterBase * getPlotter() const
Returns the plotter used by this view.
Definition: ViewBase.cxx:50
const std::vector< const ViewBase * > & views() const
Returns temporary list of all QtView objects on the canvas.
PyArray_TYPES type(numeric::array arr)
Definition: num_util.cpp:249
The base class for data representations.
Definition: DataRep.h:68
QListView * m_plot_table
Definition: PlotTableBase.h:37
A derived class of PlotTableBase class which is generated by the Qt designer.
Definition: PlotTable.h:49
PlotTableEvent class interface.
void setBrowserMode(bool browser, QWidget *observer=0)
Sets the mode of the plot table.
Definition: PlotTable.cxx:116
ViewBase * v
Definition: PlotTable.cxx:104
virtual void copyButton_clicked()
Responds to click on copy button.
Definition: PlotTable.cxx:125
The base class for the PlotTable class.
Definition: PlotTableBase.h:27
virtual void closeButton_clicked()
Response to click on close button.
Definition: PlotTable.cxx:135
hippodraw::QtView class interface
The class of derived from ViewBase and QCanvasRectangle for drawing on a QCanvas. ...
Definition: QtView.h:41
CanvasView * m_canvas_view
The canvas that is currently being used.
Definition: PlotTable.h:60
virtual DataRep * getDataRep(int index) const
Returns the specified DataRep or null pointer if it doesn&#39;t exits.
The abstract base class for views.
Definition: ViewBase.h:62
bool m_browser_mode
The mode of the plot table.
Definition: PlotTable.h:76
virtual bool hasAxis(Axes::Type axis) const
Returns true if the plotter has an axis of specified type.
void initialize()
Initialized the table.
Definition: PlotTable.cxx:57
hippodraw::ViewBase class interface
std::map< const QListViewItem *, const ViewBase * > m_view_map
A map to associate a QListViewItem with its ViewBase.
Definition: PlotTable.h:64
hippodraw::PlotterBase class interface.
QtView * vv
Definition: PlotTable.cxx:105

Generated for HippoDraw Class Library by doxygen