#include "TParallelCoordEditor.h"
#include "TParallelCoord.h"
#include "TParallelCoordRange.h"
#include "TParallelCoordVar.h"
#include "TGFrame.h"
#include "TGButton.h"
#include "TGButtonGroup.h"
#include "TGNumberEntry.h"
#include "TGLabel.h"
#include "TGTextEntry.h"
#include "TGComboBox.h"
#include "TGColorSelect.h"
#include "TColor.h"
#include "TG3DLine.h"
#include "TGSlider.h"
#include "TGComboBox.h"
#include "TGDoubleSlider.h"
#include "TTree.h"
#include "TGListBox.h"
#include "TGedPatternSelect.h"
#include "Riostream.h"
ClassImp(TParallelCoordEditor)
enum EParallelWid {
kGlobalLineColor,
kLineTypeBgroup,
kLineTypePoly,
kLineTypeCurves,
kGlobalLineWidth,
kDotsSpacing,
kDotsSpacingField,
kSelectionSelect,
kSelectLineColor,
kSelectLineWidth,
kActivateSelection,
kDeleteSelection,
kAddSelection,
kAddSelectionEntry,
kShowRanges,
kPaintEntries,
kEntriesToDraw,
kFirstEntry,
kNentries,
kApplySelect,
kUnApply,
kDelayDrawing,
kHideAllRanges,
kVariables,
kDeleteVar,
kHistHeight,
kHistWidth,
kHistBinning,
kRenameVar,
kWeightCut,
kHistColorSelect,
kHistPatternSelect
};
TParallelCoordEditor::TParallelCoordEditor(const TGWindow* ,
Int_t, Int_t ,
UInt_t , Pixel_t )
{
fPriority = 1;
fDelay = kTRUE;
MakeTitle("Line");
TGHorizontalFrame *f1 = new TGHorizontalFrame(this);
fGlobalLineColor = new TGColorSelect(f1,0,kGlobalLineColor);
f1->AddFrame(fGlobalLineColor,new TGLayoutHints(kLHintsLeft | kLHintsTop));
fGlobalLineWidth = new TGLineWidthComboBox(f1, kGlobalLineWidth);
fGlobalLineWidth->Resize(91, 20);
f1->AddFrame(fGlobalLineWidth, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 1));
AddFrame(f1, new TGLayoutHints(kLHintsLeft | kLHintsTop));
AddFrame(new TGLabel(this,"Dots spacing"),
new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
TGHorizontalFrame *f2 = new TGHorizontalFrame(this);
fDotsSpacing = new TGHSlider(f2,100,kSlider1|kScaleBoth,kDotsSpacing);
fDotsSpacing->SetRange(0,60);
f2->AddFrame(fDotsSpacing,new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
fDotsSpacingField = new TGNumberEntryField(f2, kDotsSpacingField, 0,
TGNumberFormat::kNESInteger,
TGNumberFormat::kNEANonNegative);
fDotsSpacingField->Resize(40,20);
f2->AddFrame(fDotsSpacingField,new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
AddFrame(f2, new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
fLineTypeBgroup = new TGButtonGroup(this,2,1,0,0, "Line type");
fLineTypeBgroup->SetRadioButtonExclusive(kTRUE);
fLineTypePoly = new TGRadioButton(fLineTypeBgroup,"Polyline", kLineTypePoly);
fLineTypePoly->SetToolTipText("Draw the entries with a polyline");
fLineTypeCurves = new TGRadioButton(fLineTypeBgroup,"Curves",
kLineTypeCurves);
fLineTypeCurves->SetToolTipText("Draw the entries with a curve");
fLineTypeBgroup->ChangeOptions(kChildFrame|kVerticalFrame);
AddFrame(fLineTypeBgroup, new TGLayoutHints(kLHintsCenterY | kLHintsLeft));
MakeTitle("Selections");
fHideAllRanges = new TGCheckButton(this,"Hide all ranges",kHideAllRanges);
AddFrame(fHideAllRanges);
fSelectionSelect = new TGComboBox(this,kSelectionSelect);
fSelectionSelect->Resize(140,20);
AddFrame(fSelectionSelect, new TGLayoutHints(kLHintsCenterY | kLHintsLeft,0,0,3,0));
TGHorizontalFrame *f3 = new TGHorizontalFrame(this);
fSelectLineColor = new TGColorSelect(f3,0,kSelectLineColor);
f3->AddFrame(fSelectLineColor,new TGLayoutHints(kLHintsLeft | kLHintsTop));
fSelectLineWidth = new TGLineWidthComboBox(f3, kSelectLineWidth);
fSelectLineWidth->Resize(94, 20);
f3->AddFrame(fSelectLineWidth, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 1));
AddFrame(f3, new TGLayoutHints(kLHintsLeft | kLHintsTop,0,0,3,0));
fActivateSelection = new TGCheckButton(this,"Activate",kActivateSelection);
fActivateSelection->SetToolTipText("Activate the current selection");
AddFrame(fActivateSelection);
fShowRanges = new TGCheckButton(this,"Show ranges",kShowRanges);
AddFrame(fShowRanges);
TGHorizontalFrame *f5 = new TGHorizontalFrame(this);
fAddSelectionField = new TGTextEntry(f5);
fAddSelectionField->Resize(57,20);
f5->AddFrame(fAddSelectionField, new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
fAddSelection = new TGTextButton(f5,"Add");
fAddSelection->SetToolTipText("Add a new selection (Right click on the axes to add a range).");
f5->AddFrame(fAddSelection, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,3,0,0,0));
fDeleteSelection = new TGTextButton(f5,"Delete",kDeleteSelection);
fDeleteSelection->SetToolTipText("Delete the current selection");
f5->AddFrame(fDeleteSelection, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,3,0,0,0));
AddFrame(f5, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,3,0,0,0));
TGHorizontalFrame *f7 = new TGHorizontalFrame(this);
fApplySelect = new TGTextButton(f7,"Apply to tree",kApplySelect);
fApplySelect->SetToolTipText("Generate an entry list for the current selection and apply it to the tree.");
f7->AddFrame(fApplySelect);
fUnApply = new TGTextButton(f7,"Reset tree",kUnApply);
fUnApply->SetToolTipText("Reset the tree entry list");
f7->AddFrame(fUnApply, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,10,0,0,0));
AddFrame(f7, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,0,0,3,0));
MakeTitle("Entries");
fPaintEntries = new TGCheckButton(this,"Draw entries",kPaintEntries);
AddFrame(fPaintEntries);
fDelayDrawing = new TGCheckButton(this,"Delay Drawing", kDelayDrawing);
AddFrame(fDelayDrawing);
fEntriesToDraw = new TGDoubleHSlider(this,140,kDoubleScaleBoth,kEntriesToDraw);
AddFrame(fEntriesToDraw);
TGHorizontalFrame *f6 = new TGHorizontalFrame(this);
TGVerticalFrame *v1 = new TGVerticalFrame(f6);
TGVerticalFrame *v2 = new TGVerticalFrame(f6);
v1->AddFrame(new TGLabel(v1,"First entry:"));
fFirstEntry = new TGNumberEntryField(v1, kFirstEntry, 0,
TGNumberFormat::kNESInteger,
TGNumberFormat::kNEANonNegative);
fFirstEntry->Resize(68,20);
v1->AddFrame(fFirstEntry);
v2->AddFrame(new TGLabel(v2,"# of entries:"));
fNentries = new TGNumberEntryField(v2, kFirstEntry, 0,
TGNumberFormat::kNESInteger,
TGNumberFormat::kNEANonNegative);
fNentries->Resize(68,20);
v2->AddFrame(fNentries);
f6->AddFrame(v1);
f6->AddFrame(v2, new TGLayoutHints(kLHintsLeft,4,0,0,0));
AddFrame(f6);
AddFrame(new TGLabel(this,"Weight cut:"));
TGHorizontalFrame *f8 = new TGHorizontalFrame(this);
fWeightCut = new TGHSlider(f8,100,kSlider1|kScaleBoth,kDotsSpacing);
fWeightCutField = new TGNumberEntryField(f8,kDotsSpacingField, 0,
TGNumberFormat::kNESInteger,
TGNumberFormat::kNEANonNegative);
fWeightCutField->Resize(40,20);
f8->AddFrame(fWeightCut);
f8->AddFrame(fWeightCutField);
AddFrame(f8);
MakeVariablesTab();
}
void TParallelCoordEditor::MakeVariablesTab()
{
fVarTab = CreateEditorTabSubFrame("Variables");
TGHorizontalFrame *f9 = new TGHorizontalFrame(fVarTab);
fAddVariable = new TGTextEntry(f9);
fAddVariable->Resize(71,20);
f9->AddFrame(fAddVariable, new TGLayoutHints(kLHintsCenterY));
fButtonAddVar = new TGTextButton(f9,"Add");
fButtonAddVar->SetToolTipText("Add a new variable from the tree (must be a valid expression).");
f9->AddFrame(fButtonAddVar, new TGLayoutHints(kLHintsCenterY,4,0,0,0));
fVarTab->AddFrame(f9);
TGHorizontalFrame *f10 = new TGHorizontalFrame(fVarTab);
fVariables = new TGComboBox(f10,kVariables);
fVariables->Resize(105,20);
f10->AddFrame(fVariables, new TGLayoutHints(kLHintsCenterY));
fVarTab->AddFrame(f10,new TGLayoutHints(kLHintsLeft,0,0,2,0));
TGHorizontalFrame *f12 = new TGHorizontalFrame(fVarTab);
fDeleteVar = new TGTextButton(f12,"Delete",kDeleteVar);
fDeleteVar->SetToolTipText("Delete the current selected variable");
f12->AddFrame(fDeleteVar, new TGLayoutHints(kLHintsCenterY,1,0,0,0));
fRenameVar = new TGTextButton(f12,"Rename",kRenameVar);
fRenameVar->SetToolTipText("Rename the current selected variable");
f12->AddFrame(fRenameVar, new TGLayoutHints(kLHintsCenterY,4,0,0,0));
fVarTab->AddFrame(f12,new TGLayoutHints(kLHintsLeft,0,0,2,0));
fVarTab->AddFrame(new TGLabel(fVarTab,"Axis histograms:"));
TGHorizontalFrame *f11 = new TGHorizontalFrame(fVarTab);
TGVerticalFrame *v3 = new TGVerticalFrame(f11);
TGVerticalFrame *v4 = new TGVerticalFrame(f11);
v3->AddFrame(new TGLabel(v3,"Binning:"));
fHistBinning = new TGNumberEntryField(v3, kHistWidth, 0,
TGNumberFormat::kNESInteger,
TGNumberFormat::kNEANonNegative);
fHistBinning->Resize(68,20);
v3->AddFrame(fHistBinning);
v4->AddFrame(new TGLabel(v4,"Width:"));
fHistWidth = new TGNumberEntryField(v4, kHistWidth, 0,
TGNumberFormat::kNESInteger,
TGNumberFormat::kNEANonNegative);
fHistWidth->Resize(68,20);
v4->AddFrame(fHistWidth, new TGLayoutHints(kLHintsLeft,4,0,0,0));
f11->AddFrame(v3);
f11->AddFrame(v4);
fVarTab->AddFrame(f11);
fHistShowBoxes = new TGCheckButton(fVarTab,"Show box histograms");
fVarTab->AddFrame(fHistShowBoxes);
fVarTab->AddFrame(new TGLabel(fVarTab,"Bar histograms style:"));
TGCompositeFrame *f13 = new TGCompositeFrame(fVarTab, 80, 20, kHorizontalFrame);
fHistColorSelect = new TGColorSelect(f13, 0, kHistColorSelect);
f13->AddFrame(fHistColorSelect, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
fHistColorSelect->Associate(this);
fHistPatternSelect = new TGedPatternSelect(f13, 1, kHistPatternSelect);
f13->AddFrame(fHistPatternSelect, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
fHistPatternSelect->Associate(this);
fVarTab->AddFrame(f13, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
}
TParallelCoordEditor::~TParallelCoordEditor()
{
delete fLineTypePoly;
delete fLineTypeCurves;
}
void TParallelCoordEditor::CleanUpSelections()
{
TList *list = fParallel->GetSelectList();
fSelectionSelect->RemoveAll();
Bool_t enable = list->GetSize() > 0;
fSelectionSelect->SetEnabled(enable);
fSelectLineColor->SetEnabled(enable);
fSelectLineWidth->SetEnabled(enable);
fActivateSelection->SetEnabled(enable);
fShowRanges->SetEnabled(enable);
fDeleteSelection->SetEnabled(enable);
if (list->GetSize() > 0) {
Int_t i = 0;
TIter next(list);
TParallelCoordSelect* sel;
while ((sel = (TParallelCoordSelect*)next())) {
fSelectionSelect->AddEntry(sel->GetTitle(),i);
fSelectionSelect->GetListBox()->GetEntry(i)->SetBackgroundColor(TColor::Number2Pixel(sel->GetLineColor()));
++i;
}
sel = fParallel->GetCurrentSelection();
fSelectionSelect->Select(list->IndexOf(sel),kFALSE);
Color_t c;
Pixel_t p;
c = sel->GetLineColor();
p = TColor::Number2Pixel(c);
fSelectLineColor->SetColor(p);
fSelectLineWidth->Select(sel->GetLineWidth());
fActivateSelection->SetOn(sel->TestBit(TParallelCoordSelect::kActivated));
fShowRanges->SetOn(sel->TestBit(TParallelCoordSelect::kShowRanges));
}
}
void TParallelCoordEditor::CleanUpVariables()
{
TList *list = fParallel->GetVarList();
fVariables->RemoveAll();
Bool_t enable = list->GetSize() > 0;
fVariables->SetEnabled(enable);
fDeleteVar->SetEnabled(enable);
fHistShowBoxes->SetEnabled(enable);
fHistWidth->SetEnabled(enable);
fHistBinning->SetEnabled(enable);
if (list->GetSize() > 0) {
Int_t i = 0;
TIter next(list);
TParallelCoordVar* var;
while ((var = (TParallelCoordVar*)next())) {
fVariables->AddEntry(var->GetTitle(),i);
++i;
}
var = (TParallelCoordVar*)list->First();
fVariables->Select(0,kFALSE);
fHistShowBoxes->SetOn(var->TestBit(TParallelCoordVar::kShowBarHisto));
fHistWidth->SetNumber(var->GetHistLineWidth());
fHistBinning->SetNumber(var->GetHistBinning());
}
}
void TParallelCoordEditor::ConnectSignals2Slots()
{
fGlobalLineColor->Connect("ColorSelected(Pixel_t)","TParallelCoordEditor",
this, "DoGlobalLineColor(Pixel_t)");
fGlobalLineWidth->Connect("Selected(Int_t)","TParallelCoordEditor",
this, "DoGlobalLineWidth(Int_t)");
fDotsSpacing->Connect("Released()","TParallelCoordEditor",
this, "DoDotsSpacing()");
fDotsSpacing->Connect("PositionChanged(Int_t)","TParallelCoordEditor",
this, "DoLiveDotsSpacing(Int_t)");
fDotsSpacingField->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoDotsSpacingField()");
fLineTypeBgroup->Connect("Clicked(Int_t)", "TParallelCoordEditor",
this, "DoLineType()");
fSelectionSelect->Connect("Selected(const char*)","TParallelCoordEditor",
this, "DoSelectionSelect(const char*)");
fSelectLineColor->Connect("ColorSelected(Pixel_t)","TParallelCoordEditor",
this, "DoSelectLineColor(Pixel_t)");
fSelectLineWidth->Connect("Selected(Int_t)","TParallelCoordEditor",
this, "DoSelectLineWidth(Int_t)");
fActivateSelection->Connect("Toggled(Bool_t)","TParallelCoordEditor",
this, "DoActivateSelection(Bool_t)");
fShowRanges->Connect("Toggled(Bool_t)","TParallelCoordEditor",
this, "DoShowRanges(Bool_t)");
fDeleteSelection->Connect("Clicked()","TParallelCoordEditor",
this, "DoDeleteSelection()");
fAddSelection->Connect("Clicked()","TParallelCoordEditor",
this, "DoAddSelection()");
fPaintEntries->Connect("Toggled(Bool_t)","TParallelCoordEditor",
this, "DoPaintEntries(Bool_t)");
fEntriesToDraw->Connect("Released()","TParallelCoordEditor",
this, "DoEntriesToDraw()");
fEntriesToDraw->Connect("PositionChanged()","TParallelCoordEditor",
this, "DoLiveEntriesToDraw()");
fFirstEntry->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoFirstEntry()");
fNentries->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoNentries()");
fApplySelect->Connect("Clicked()","TParallelCoordEditor",
this, "DoApplySelect()");
fUnApply->Connect("Clicked()","TParallelCoordEditor",
this, "DoUnApply()");
fDelayDrawing->Connect("Toggled(Bool_t)","TParallelCoordEditor",
this, "DoDelayDrawing(Bool_t)");
fAddVariable->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoAddVariable()");
fButtonAddVar->Connect("Clicked()","TParallelCoordEditor",
this, "DoAddVariable()");
fHideAllRanges->Connect("Toggled(Bool_t)","TParallelCoordEditor",
this, "DoHideAllRanges(Bool_t)");
fVariables->Connect("Selected(const char*)","TParallelCoordEditor",
this, "DoVariableSelect(const char*)");
fDeleteVar->Connect("Clicked()","TParallelCoordEditor",
this, "DoDeleteVar()");
fHistWidth->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoHistWidth()");
fHistBinning->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoHistBinning()");
fWeightCut->Connect("Released()","TParallelCoordEditor",
this, "DoWeightCut()");
fWeightCut->Connect("PositionChanged(Int_t)","TParallelCoordEditor",
this, "DoLiveWeightCut(Int_t)");
fWeightCutField->Connect("ReturnPressed()","TParallelCoordEditor",
this, "DoWeightCut()");
fHistColorSelect->Connect("ColorSelected(Pixel_t)", "TParallelCoordEditor",
this, "DoHistColorSelect(Pixel_t)");
fHistPatternSelect->Connect("PatternSelected(Style_t)", "TParallelCoordEditor",
this, "DoHistPatternSelect(Style_t)");
fHistShowBoxes->Connect("Toggled(Bool_t)","TParallelCoordEditor",
this, "DoHistShowBoxes(Bool_t)");
fInit = kFALSE;
}
void TParallelCoordEditor::DoActivateSelection(Bool_t on)
{
if (fAvoidSignal) return;
fParallel->GetCurrentSelection()->SetActivated(on);
Update();
}
void TParallelCoordEditor::DoAddSelection()
{
TString title = fAddSelectionField->GetText();
if(title == "") title = "Selection";
TString titlebis = title;
Bool_t found = kTRUE;
Int_t i=1;
while (found){
if(fSelectionSelect->FindEntry(titlebis)) {
titlebis = title;
titlebis.Append(Form("(%d)",i));
}
else found = kFALSE;
++i;
}
fParallel->AddSelection(titlebis.Data());
CleanUpSelections();
}
void TParallelCoordEditor::DoAddVariable()
{
if (fAvoidSignal) return;
fParallel->AddVariable(fAddVariable->GetText());
CleanUpVariables();
Update();
}
void TParallelCoordEditor::DoApplySelect()
{
if (fAvoidSignal) return;
fParallel->ApplySelectionToTree();
Update();
SetModel(fParallel);
}
void TParallelCoordEditor::DoDelayDrawing(Bool_t on)
{
if (fAvoidSignal) return;
fDelay = on;
fParallel->SetLiveRangesUpdate(!on);
}
void TParallelCoordEditor::DoDeleteSelection()
{
if (fAvoidSignal) return;
fParallel->DeleteSelection(fParallel->GetCurrentSelection());
CleanUpSelections();
Update();
}
void TParallelCoordEditor::DoDeleteVar()
{
if (fAvoidSignal) return;
TParallelCoordVar* var = fParallel->RemoveVariable(((TGTextLBEntry*)fVariables->GetSelectedEntry())->GetTitle());
CleanUpVariables();
if(var) Update();
}
void TParallelCoordEditor::DoDotsSpacing()
{
if (fAvoidSignal) return;
fParallel->SetDotsSpacing(fDotsSpacing->GetPosition());
fDotsSpacingField->SetNumber((Int_t)fDotsSpacing->GetPosition());
Update();
}
void TParallelCoordEditor::DoDotsSpacingField()
{
if (fAvoidSignal) return;
fParallel->SetDotsSpacing((Int_t)fDotsSpacingField->GetNumber());
fDotsSpacing->SetPosition((Int_t)fDotsSpacingField->GetNumber());
Update();
}
void TParallelCoordEditor::DoEntriesToDraw()
{
if (fAvoidSignal) return;
Long64_t nentries,firstentry;
firstentry = (Long64_t)fEntriesToDraw->GetMinPosition();
nentries = (Long64_t)(fEntriesToDraw->GetMaxPosition() - fEntriesToDraw->GetMinPosition() + 1);
fParallel->SetCurrentFirst(firstentry);
fParallel->SetCurrentN(nentries);
Update();
}
void TParallelCoordEditor::DoFirstEntry()
{
if (fAvoidSignal) return;
fParallel->SetCurrentFirst((Long64_t)fFirstEntry->GetNumber());
fEntriesToDraw->SetPosition((Long64_t)fFirstEntry->GetNumber(),(Long64_t)fFirstEntry->GetNumber()+fParallel->GetCurrentN());
Update();
}
void TParallelCoordEditor::DoGlobalLineColor(Pixel_t a)
{
if (fAvoidSignal) return;
fParallel->SetLineColor(TColor::GetColor(a));
Update();
}
void TParallelCoordEditor::DoGlobalLineWidth(Int_t wid)
{
if (fAvoidSignal) return;
fParallel->SetLineWidth(wid);
Update();
}
void TParallelCoordEditor::DoHideAllRanges(Bool_t on)
{
if (fAvoidSignal) return;
TIter next(fParallel->GetSelectList());
TParallelCoordSelect* sel;
while((sel = (TParallelCoordSelect*)next())) sel->SetShowRanges(!on);
fShowRanges->SetOn(!on);
fShowRanges->SetEnabled(!on);
fShowRanges->SetOn(!on);
Update();
}
void TParallelCoordEditor::DoHistBinning()
{
if (fAvoidSignal) return;
fParallel->SetAxisHistogramBinning((Int_t)fHistBinning->GetNumber());
Update();
}
void TParallelCoordEditor::DoHistColorSelect(Pixel_t p)
{
if (fAvoidSignal) return;
Color_t col = TColor::GetColor(p);
TIter next(fParallel->GetVarList());
TParallelCoordVar *var = NULL;
while ((var = (TParallelCoordVar*)next())) var->SetFillColor(col);
Update();
}
void TParallelCoordEditor::DoHistShowBoxes(Bool_t s)
{
if (fAvoidSignal) return;
TIter next(fParallel->GetVarList());
TParallelCoordVar* var;
while ((var = (TParallelCoordVar*)next())) var->SetBit(TParallelCoordVar::kShowBarHisto,s);
Update();
}
void TParallelCoordEditor::DoHistPatternSelect(Style_t sty)
{
if (fAvoidSignal) return;
TIter next(fParallel->GetVarList());
TParallelCoordVar *var = NULL;
while ((var = (TParallelCoordVar*)next())) var->SetFillStyle(sty);
Update();
}
void TParallelCoordEditor::DoHistWidth()
{
if (fAvoidSignal) return;
fParallel->SetAxisHistogramLineWidth((Int_t)fHistWidth->GetNumber());
Update();
}
void TParallelCoordEditor::DoLineType()
{
if (fAvoidSignal) return;
if(fLineTypePoly->GetState() == kButtonDown) fParallel->SetCurveDisplay(kFALSE);
else fParallel->SetCurveDisplay(kTRUE);
Update();
}
void TParallelCoordEditor::DoLiveDotsSpacing(Int_t a)
{
if (fAvoidSignal) return;
fDotsSpacingField->SetNumber(a);
fParallel->SetDotsSpacing(a);
if(!fDelay) Update();
}
void TParallelCoordEditor::DoLiveEntriesToDraw()
{
if (fAvoidSignal) return;
Long64_t nentries,firstentry;
firstentry = (Long64_t)fEntriesToDraw->GetMinPosition();
nentries = (Long64_t)(fEntriesToDraw->GetMaxPosition() - fEntriesToDraw->GetMinPosition() + 1);
fFirstEntry->SetNumber(firstentry);
fNentries->SetNumber(nentries);
if (!fDelay) {
fParallel->SetCurrentFirst(firstentry);
fParallel->SetCurrentN(nentries);
Update();
}
}
void TParallelCoordEditor::DoLiveWeightCut(Int_t n)
{
if (fAvoidSignal) return;
fWeightCutField->SetNumber(n);
if (!fDelay) {
fParallel->SetWeightCut(n);
Update();
}
}
void TParallelCoordEditor::DoNentries()
{
if (fAvoidSignal) return;
fParallel->SetCurrentN((Long64_t)fNentries->GetNumber());
fEntriesToDraw->SetPosition(fParallel->GetCurrentFirst(),fParallel->GetCurrentFirst()+fParallel->GetCurrentN());
Update();
}
void TParallelCoordEditor::DoPaintEntries(Bool_t on)
{
if (fAvoidSignal) return;
fParallel->SetBit(TParallelCoord::kPaintEntries,on);
Update();
}
void TParallelCoordEditor::DoSelectLineColor(Pixel_t a)
{
if (fAvoidSignal) return;
fParallel->GetCurrentSelection()->SetLineColor(TColor::GetColor(a));
fSelectionSelect->GetSelectedEntry()->SetBackgroundColor(a);
Update();
}
void TParallelCoordEditor::DoSelectLineWidth(Int_t wid)
{
if (fAvoidSignal) return;
fParallel->GetCurrentSelection()->SetLineWidth(wid);
Update();
}
void TParallelCoordEditor::DoSelectionSelect(const char* title)
{
if (fAvoidSignal) return;
if (!fParallel->SetCurrentSelection(title)) return;
Color_t c = fParallel->GetCurrentSelection()->GetLineColor();
Pixel_t p = TColor::Number2Pixel(c);
fSelectLineColor->SetColor(p,kFALSE);
fSelectLineWidth->Select(fParallel->GetCurrentSelection()->GetLineWidth(),kFALSE);
fActivateSelection->SetOn(fParallel->GetCurrentSelection()->TestBit(TParallelCoordSelect::kActivated));
fShowRanges->SetOn(fParallel->GetCurrentSelection()->TestBit(TParallelCoordSelect::kShowRanges));
}
void TParallelCoordEditor::DoShowRanges(Bool_t s)
{
if (fAvoidSignal) return;
fParallel->GetCurrentSelection()->SetShowRanges(s);
Update();
}
void TParallelCoordEditor::DoUnApply()
{
if (fAvoidSignal) return;
fParallel->ResetTree();
Update();
SetModel(fParallel);
}
void TParallelCoordEditor::DoVariableSelect(const char* )
{
}
void TParallelCoordEditor::DoWeightCut()
{
if (fAvoidSignal) return;
Int_t n = (Int_t)fWeightCutField->GetNumber();
fParallel->SetWeightCut(n);
Update();
}
void TParallelCoordEditor::SetModel(TObject* obj)
{
if (!obj) return;
fParallel = dynamic_cast<TParallelCoord*>(obj);
if (!fParallel) return;
fAvoidSignal = kTRUE;
Color_t c = fParallel->GetLineColor();
Pixel_t p = TColor::Number2Pixel(c);
fGlobalLineColor->SetColor(p);
fGlobalLineWidth->Select(fParallel->GetLineWidth());
fPaintEntries->SetOn(fParallel->TestBit(TParallelCoord::kPaintEntries));
fDotsSpacing->SetPosition(fParallel->GetDotsSpacing());
fDotsSpacingField->SetNumber(fParallel->GetDotsSpacing());
Bool_t cur = fParallel->GetCurveDisplay();
if (cur) fLineTypeBgroup->SetButton(kLineTypeCurves,kTRUE);
else fLineTypeBgroup->SetButton(kLineTypePoly,kTRUE);
if(fInit) fHideAllRanges->SetOn(kFALSE);
CleanUpSelections();
CleanUpVariables();
if (fInit) fEntriesToDraw->SetRange(0,fParallel->GetNentries());
fEntriesToDraw->SetPosition(fParallel->GetCurrentFirst(), fParallel->GetCurrentFirst()+fParallel->GetCurrentN());
fFirstEntry->SetNumber(fParallel->GetCurrentFirst());
fNentries->SetNumber(fParallel->GetCurrentN());
fDelayDrawing->SetOn(fDelay);
fWeightCut->SetRange(0,(Int_t)(fParallel->GetNentries()/10));
fWeightCut->SetPosition(fParallel->GetWeightCut());
fWeightCutField->SetNumber(fParallel->GetWeightCut());
fHistColorSelect->SetColor(TColor::Number2Pixel(((TParallelCoordVar*)fParallel->GetVarList()->Last())->GetFillColor()), kFALSE);
fHistPatternSelect->SetPattern(((TParallelCoordVar*)fParallel->GetVarList()->Last())->GetFillStyle(),kFALSE);
if (fInit) ConnectSignals2Slots();
fAvoidSignal = kFALSE;
}
TParallelCoordEditor.cxx:1 TParallelCoordEditor.cxx:2 TParallelCoordEditor.cxx:3 TParallelCoordEditor.cxx:4 TParallelCoordEditor.cxx:5 TParallelCoordEditor.cxx:6 TParallelCoordEditor.cxx:7 TParallelCoordEditor.cxx:8 TParallelCoordEditor.cxx:9 TParallelCoordEditor.cxx:10 TParallelCoordEditor.cxx:11 TParallelCoordEditor.cxx:12 TParallelCoordEditor.cxx:13 TParallelCoordEditor.cxx:14 TParallelCoordEditor.cxx:15 TParallelCoordEditor.cxx:16 TParallelCoordEditor.cxx:17 TParallelCoordEditor.cxx:18 TParallelCoordEditor.cxx:19 TParallelCoordEditor.cxx:20 TParallelCoordEditor.cxx:21 TParallelCoordEditor.cxx:22 TParallelCoordEditor.cxx:23 TParallelCoordEditor.cxx:24 TParallelCoordEditor.cxx:25 TParallelCoordEditor.cxx:26 TParallelCoordEditor.cxx:27 TParallelCoordEditor.cxx:28 TParallelCoordEditor.cxx:29 TParallelCoordEditor.cxx:30 TParallelCoordEditor.cxx:31 TParallelCoordEditor.cxx:32 TParallelCoordEditor.cxx:33 TParallelCoordEditor.cxx:34 TParallelCoordEditor.cxx:35 TParallelCoordEditor.cxx:36 TParallelCoordEditor.cxx:37 TParallelCoordEditor.cxx:38 TParallelCoordEditor.cxx:39 TParallelCoordEditor.cxx:40 TParallelCoordEditor.cxx:41 TParallelCoordEditor.cxx:42 TParallelCoordEditor.cxx:43 TParallelCoordEditor.cxx:44 TParallelCoordEditor.cxx:45 TParallelCoordEditor.cxx:46 TParallelCoordEditor.cxx:47 TParallelCoordEditor.cxx:48 TParallelCoordEditor.cxx:49 TParallelCoordEditor.cxx:50 TParallelCoordEditor.cxx:51 TParallelCoordEditor.cxx:52 TParallelCoordEditor.cxx:53 TParallelCoordEditor.cxx:54 TParallelCoordEditor.cxx:55 TParallelCoordEditor.cxx:56 TParallelCoordEditor.cxx:57 TParallelCoordEditor.cxx:58 TParallelCoordEditor.cxx:59 TParallelCoordEditor.cxx:60 TParallelCoordEditor.cxx:61 TParallelCoordEditor.cxx:62 TParallelCoordEditor.cxx:63 TParallelCoordEditor.cxx:64 TParallelCoordEditor.cxx:65 TParallelCoordEditor.cxx:66 TParallelCoordEditor.cxx:67 TParallelCoordEditor.cxx:68 TParallelCoordEditor.cxx:69 TParallelCoordEditor.cxx:70 TParallelCoordEditor.cxx:71 TParallelCoordEditor.cxx:72 TParallelCoordEditor.cxx:73 TParallelCoordEditor.cxx:74 TParallelCoordEditor.cxx:75 TParallelCoordEditor.cxx:76 TParallelCoordEditor.cxx:77 TParallelCoordEditor.cxx:78 TParallelCoordEditor.cxx:79 TParallelCoordEditor.cxx:80 TParallelCoordEditor.cxx:81 TParallelCoordEditor.cxx:82 TParallelCoordEditor.cxx:83 TParallelCoordEditor.cxx:84 TParallelCoordEditor.cxx:85 TParallelCoordEditor.cxx:86 TParallelCoordEditor.cxx:87 TParallelCoordEditor.cxx:88 TParallelCoordEditor.cxx:89 TParallelCoordEditor.cxx:90 TParallelCoordEditor.cxx:91 TParallelCoordEditor.cxx:92 TParallelCoordEditor.cxx:93 TParallelCoordEditor.cxx:94 TParallelCoordEditor.cxx:95 TParallelCoordEditor.cxx:96 TParallelCoordEditor.cxx:97 TParallelCoordEditor.cxx:98 TParallelCoordEditor.cxx:99 TParallelCoordEditor.cxx:100 TParallelCoordEditor.cxx:101 TParallelCoordEditor.cxx:102 TParallelCoordEditor.cxx:103 TParallelCoordEditor.cxx:104 TParallelCoordEditor.cxx:105 TParallelCoordEditor.cxx:106 TParallelCoordEditor.cxx:107 TParallelCoordEditor.cxx:108 TParallelCoordEditor.cxx:109 TParallelCoordEditor.cxx:110 TParallelCoordEditor.cxx:111 TParallelCoordEditor.cxx:112 TParallelCoordEditor.cxx:113 TParallelCoordEditor.cxx:114 TParallelCoordEditor.cxx:115 TParallelCoordEditor.cxx:116 TParallelCoordEditor.cxx:117 TParallelCoordEditor.cxx:118 TParallelCoordEditor.cxx:119 TParallelCoordEditor.cxx:120 TParallelCoordEditor.cxx:121 TParallelCoordEditor.cxx:122 TParallelCoordEditor.cxx:123 TParallelCoordEditor.cxx:124 TParallelCoordEditor.cxx:125 TParallelCoordEditor.cxx:126 TParallelCoordEditor.cxx:127 TParallelCoordEditor.cxx:128 TParallelCoordEditor.cxx:129 TParallelCoordEditor.cxx:130 TParallelCoordEditor.cxx:131 TParallelCoordEditor.cxx:132 TParallelCoordEditor.cxx:133 TParallelCoordEditor.cxx:134 TParallelCoordEditor.cxx:135 TParallelCoordEditor.cxx:136 TParallelCoordEditor.cxx:137 TParallelCoordEditor.cxx:138 TParallelCoordEditor.cxx:139 TParallelCoordEditor.cxx:140 TParallelCoordEditor.cxx:141 TParallelCoordEditor.cxx:142 TParallelCoordEditor.cxx:143 TParallelCoordEditor.cxx:144 TParallelCoordEditor.cxx:145 TParallelCoordEditor.cxx:146 TParallelCoordEditor.cxx:147 TParallelCoordEditor.cxx:148 TParallelCoordEditor.cxx:149 TParallelCoordEditor.cxx:150 TParallelCoordEditor.cxx:151 TParallelCoordEditor.cxx:152 TParallelCoordEditor.cxx:153 TParallelCoordEditor.cxx:154 TParallelCoordEditor.cxx:155 TParallelCoordEditor.cxx:156 TParallelCoordEditor.cxx:157 TParallelCoordEditor.cxx:158 TParallelCoordEditor.cxx:159 TParallelCoordEditor.cxx:160 TParallelCoordEditor.cxx:161 TParallelCoordEditor.cxx:162 TParallelCoordEditor.cxx:163 TParallelCoordEditor.cxx:164 TParallelCoordEditor.cxx:165 TParallelCoordEditor.cxx:166 TParallelCoordEditor.cxx:167 TParallelCoordEditor.cxx:168 TParallelCoordEditor.cxx:169 TParallelCoordEditor.cxx:170 TParallelCoordEditor.cxx:171 TParallelCoordEditor.cxx:172 TParallelCoordEditor.cxx:173 TParallelCoordEditor.cxx:174 TParallelCoordEditor.cxx:175 TParallelCoordEditor.cxx:176 TParallelCoordEditor.cxx:177 TParallelCoordEditor.cxx:178 TParallelCoordEditor.cxx:179 TParallelCoordEditor.cxx:180 TParallelCoordEditor.cxx:181 TParallelCoordEditor.cxx:182 TParallelCoordEditor.cxx:183 TParallelCoordEditor.cxx:184 TParallelCoordEditor.cxx:185 TParallelCoordEditor.cxx:186 TParallelCoordEditor.cxx:187 TParallelCoordEditor.cxx:188 TParallelCoordEditor.cxx:189 TParallelCoordEditor.cxx:190 TParallelCoordEditor.cxx:191 TParallelCoordEditor.cxx:192 TParallelCoordEditor.cxx:193 TParallelCoordEditor.cxx:194 TParallelCoordEditor.cxx:195 TParallelCoordEditor.cxx:196 TParallelCoordEditor.cxx:197 TParallelCoordEditor.cxx:198 TParallelCoordEditor.cxx:199 TParallelCoordEditor.cxx:200 TParallelCoordEditor.cxx:201 TParallelCoordEditor.cxx:202 TParallelCoordEditor.cxx:203 TParallelCoordEditor.cxx:204 TParallelCoordEditor.cxx:205 TParallelCoordEditor.cxx:206 TParallelCoordEditor.cxx:207 TParallelCoordEditor.cxx:208 TParallelCoordEditor.cxx:209 TParallelCoordEditor.cxx:210 TParallelCoordEditor.cxx:211 TParallelCoordEditor.cxx:212 TParallelCoordEditor.cxx:213 TParallelCoordEditor.cxx:214 TParallelCoordEditor.cxx:215 TParallelCoordEditor.cxx:216 TParallelCoordEditor.cxx:217 TParallelCoordEditor.cxx:218 TParallelCoordEditor.cxx:219 TParallelCoordEditor.cxx:220 TParallelCoordEditor.cxx:221 TParallelCoordEditor.cxx:222 TParallelCoordEditor.cxx:223 TParallelCoordEditor.cxx:224 TParallelCoordEditor.cxx:225 TParallelCoordEditor.cxx:226 TParallelCoordEditor.cxx:227 TParallelCoordEditor.cxx:228 TParallelCoordEditor.cxx:229 TParallelCoordEditor.cxx:230 TParallelCoordEditor.cxx:231 TParallelCoordEditor.cxx:232 TParallelCoordEditor.cxx:233 TParallelCoordEditor.cxx:234 TParallelCoordEditor.cxx:235 TParallelCoordEditor.cxx:236 TParallelCoordEditor.cxx:237 TParallelCoordEditor.cxx:238 TParallelCoordEditor.cxx:239 TParallelCoordEditor.cxx:240 TParallelCoordEditor.cxx:241 TParallelCoordEditor.cxx:242 TParallelCoordEditor.cxx:243 TParallelCoordEditor.cxx:244 TParallelCoordEditor.cxx:245 TParallelCoordEditor.cxx:246 TParallelCoordEditor.cxx:247 TParallelCoordEditor.cxx:248 TParallelCoordEditor.cxx:249 TParallelCoordEditor.cxx:250 TParallelCoordEditor.cxx:251 TParallelCoordEditor.cxx:252 TParallelCoordEditor.cxx:253 TParallelCoordEditor.cxx:254 TParallelCoordEditor.cxx:255 TParallelCoordEditor.cxx:256 TParallelCoordEditor.cxx:257 TParallelCoordEditor.cxx:258 TParallelCoordEditor.cxx:259 TParallelCoordEditor.cxx:260 TParallelCoordEditor.cxx:261 TParallelCoordEditor.cxx:262 TParallelCoordEditor.cxx:263 TParallelCoordEditor.cxx:264 TParallelCoordEditor.cxx:265 TParallelCoordEditor.cxx:266 TParallelCoordEditor.cxx:267 TParallelCoordEditor.cxx:268 TParallelCoordEditor.cxx:269 TParallelCoordEditor.cxx:270 TParallelCoordEditor.cxx:271 TParallelCoordEditor.cxx:272 TParallelCoordEditor.cxx:273 TParallelCoordEditor.cxx:274 TParallelCoordEditor.cxx:275 TParallelCoordEditor.cxx:276 TParallelCoordEditor.cxx:277 TParallelCoordEditor.cxx:278 TParallelCoordEditor.cxx:279 TParallelCoordEditor.cxx:280 TParallelCoordEditor.cxx:281 TParallelCoordEditor.cxx:282 TParallelCoordEditor.cxx:283 TParallelCoordEditor.cxx:284 TParallelCoordEditor.cxx:285 TParallelCoordEditor.cxx:286 TParallelCoordEditor.cxx:287 TParallelCoordEditor.cxx:288 TParallelCoordEditor.cxx:289 TParallelCoordEditor.cxx:290 TParallelCoordEditor.cxx:291 TParallelCoordEditor.cxx:292 TParallelCoordEditor.cxx:293 TParallelCoordEditor.cxx:294 TParallelCoordEditor.cxx:295 TParallelCoordEditor.cxx:296 TParallelCoordEditor.cxx:297 TParallelCoordEditor.cxx:298 TParallelCoordEditor.cxx:299 TParallelCoordEditor.cxx:300 TParallelCoordEditor.cxx:301 TParallelCoordEditor.cxx:302 TParallelCoordEditor.cxx:303 TParallelCoordEditor.cxx:304 TParallelCoordEditor.cxx:305 TParallelCoordEditor.cxx:306 TParallelCoordEditor.cxx:307 TParallelCoordEditor.cxx:308 TParallelCoordEditor.cxx:309 TParallelCoordEditor.cxx:310 TParallelCoordEditor.cxx:311 TParallelCoordEditor.cxx:312 TParallelCoordEditor.cxx:313 TParallelCoordEditor.cxx:314 TParallelCoordEditor.cxx:315 TParallelCoordEditor.cxx:316 TParallelCoordEditor.cxx:317 TParallelCoordEditor.cxx:318 TParallelCoordEditor.cxx:319 TParallelCoordEditor.cxx:320 TParallelCoordEditor.cxx:321 TParallelCoordEditor.cxx:322 TParallelCoordEditor.cxx:323 TParallelCoordEditor.cxx:324 TParallelCoordEditor.cxx:325 TParallelCoordEditor.cxx:326 TParallelCoordEditor.cxx:327 TParallelCoordEditor.cxx:328 TParallelCoordEditor.cxx:329 TParallelCoordEditor.cxx:330 TParallelCoordEditor.cxx:331 TParallelCoordEditor.cxx:332 TParallelCoordEditor.cxx:333 TParallelCoordEditor.cxx:334 TParallelCoordEditor.cxx:335 TParallelCoordEditor.cxx:336 TParallelCoordEditor.cxx:337 TParallelCoordEditor.cxx:338 TParallelCoordEditor.cxx:339 TParallelCoordEditor.cxx:340 TParallelCoordEditor.cxx:341 TParallelCoordEditor.cxx:342 TParallelCoordEditor.cxx:343 TParallelCoordEditor.cxx:344 TParallelCoordEditor.cxx:345 TParallelCoordEditor.cxx:346 TParallelCoordEditor.cxx:347 TParallelCoordEditor.cxx:348 TParallelCoordEditor.cxx:349 TParallelCoordEditor.cxx:350 TParallelCoordEditor.cxx:351 TParallelCoordEditor.cxx:352 TParallelCoordEditor.cxx:353 TParallelCoordEditor.cxx:354 TParallelCoordEditor.cxx:355 TParallelCoordEditor.cxx:356 TParallelCoordEditor.cxx:357 TParallelCoordEditor.cxx:358 TParallelCoordEditor.cxx:359 TParallelCoordEditor.cxx:360 TParallelCoordEditor.cxx:361 TParallelCoordEditor.cxx:362 TParallelCoordEditor.cxx:363 TParallelCoordEditor.cxx:364 TParallelCoordEditor.cxx:365 TParallelCoordEditor.cxx:366 TParallelCoordEditor.cxx:367 TParallelCoordEditor.cxx:368 TParallelCoordEditor.cxx:369 TParallelCoordEditor.cxx:370 TParallelCoordEditor.cxx:371 TParallelCoordEditor.cxx:372 TParallelCoordEditor.cxx:373 TParallelCoordEditor.cxx:374 TParallelCoordEditor.cxx:375 TParallelCoordEditor.cxx:376 TParallelCoordEditor.cxx:377 TParallelCoordEditor.cxx:378 TParallelCoordEditor.cxx:379 TParallelCoordEditor.cxx:380 TParallelCoordEditor.cxx:381 TParallelCoordEditor.cxx:382 TParallelCoordEditor.cxx:383 TParallelCoordEditor.cxx:384 TParallelCoordEditor.cxx:385 TParallelCoordEditor.cxx:386 TParallelCoordEditor.cxx:387 TParallelCoordEditor.cxx:388 TParallelCoordEditor.cxx:389 TParallelCoordEditor.cxx:390 TParallelCoordEditor.cxx:391 TParallelCoordEditor.cxx:392 TParallelCoordEditor.cxx:393 TParallelCoordEditor.cxx:394 TParallelCoordEditor.cxx:395 TParallelCoordEditor.cxx:396 TParallelCoordEditor.cxx:397 TParallelCoordEditor.cxx:398 TParallelCoordEditor.cxx:399 TParallelCoordEditor.cxx:400 TParallelCoordEditor.cxx:401 TParallelCoordEditor.cxx:402 TParallelCoordEditor.cxx:403 TParallelCoordEditor.cxx:404 TParallelCoordEditor.cxx:405 TParallelCoordEditor.cxx:406 TParallelCoordEditor.cxx:407 TParallelCoordEditor.cxx:408 TParallelCoordEditor.cxx:409 TParallelCoordEditor.cxx:410 TParallelCoordEditor.cxx:411 TParallelCoordEditor.cxx:412 TParallelCoordEditor.cxx:413 TParallelCoordEditor.cxx:414 TParallelCoordEditor.cxx:415 TParallelCoordEditor.cxx:416 TParallelCoordEditor.cxx:417 TParallelCoordEditor.cxx:418 TParallelCoordEditor.cxx:419 TParallelCoordEditor.cxx:420 TParallelCoordEditor.cxx:421 TParallelCoordEditor.cxx:422 TParallelCoordEditor.cxx:423 TParallelCoordEditor.cxx:424 TParallelCoordEditor.cxx:425 TParallelCoordEditor.cxx:426 TParallelCoordEditor.cxx:427 TParallelCoordEditor.cxx:428 TParallelCoordEditor.cxx:429 TParallelCoordEditor.cxx:430 TParallelCoordEditor.cxx:431 TParallelCoordEditor.cxx:432 TParallelCoordEditor.cxx:433 TParallelCoordEditor.cxx:434 TParallelCoordEditor.cxx:435 TParallelCoordEditor.cxx:436 TParallelCoordEditor.cxx:437 TParallelCoordEditor.cxx:438 TParallelCoordEditor.cxx:439 TParallelCoordEditor.cxx:440 TParallelCoordEditor.cxx:441 TParallelCoordEditor.cxx:442 TParallelCoordEditor.cxx:443 TParallelCoordEditor.cxx:444 TParallelCoordEditor.cxx:445 TParallelCoordEditor.cxx:446 TParallelCoordEditor.cxx:447 TParallelCoordEditor.cxx:448 TParallelCoordEditor.cxx:449 TParallelCoordEditor.cxx:450 TParallelCoordEditor.cxx:451 TParallelCoordEditor.cxx:452 TParallelCoordEditor.cxx:453 TParallelCoordEditor.cxx:454 TParallelCoordEditor.cxx:455 TParallelCoordEditor.cxx:456 TParallelCoordEditor.cxx:457 TParallelCoordEditor.cxx:458 TParallelCoordEditor.cxx:459 TParallelCoordEditor.cxx:460 TParallelCoordEditor.cxx:461 TParallelCoordEditor.cxx:462 TParallelCoordEditor.cxx:463 TParallelCoordEditor.cxx:464 TParallelCoordEditor.cxx:465 TParallelCoordEditor.cxx:466 TParallelCoordEditor.cxx:467 TParallelCoordEditor.cxx:468 TParallelCoordEditor.cxx:469 TParallelCoordEditor.cxx:470 TParallelCoordEditor.cxx:471 TParallelCoordEditor.cxx:472 TParallelCoordEditor.cxx:473 TParallelCoordEditor.cxx:474 TParallelCoordEditor.cxx:475 TParallelCoordEditor.cxx:476 TParallelCoordEditor.cxx:477 TParallelCoordEditor.cxx:478 TParallelCoordEditor.cxx:479 TParallelCoordEditor.cxx:480 TParallelCoordEditor.cxx:481 TParallelCoordEditor.cxx:482 TParallelCoordEditor.cxx:483 TParallelCoordEditor.cxx:484 TParallelCoordEditor.cxx:485 TParallelCoordEditor.cxx:486 TParallelCoordEditor.cxx:487 TParallelCoordEditor.cxx:488 TParallelCoordEditor.cxx:489 TParallelCoordEditor.cxx:490 TParallelCoordEditor.cxx:491 TParallelCoordEditor.cxx:492 TParallelCoordEditor.cxx:493 TParallelCoordEditor.cxx:494 TParallelCoordEditor.cxx:495 TParallelCoordEditor.cxx:496 TParallelCoordEditor.cxx:497 TParallelCoordEditor.cxx:498 TParallelCoordEditor.cxx:499 TParallelCoordEditor.cxx:500 TParallelCoordEditor.cxx:501 TParallelCoordEditor.cxx:502 TParallelCoordEditor.cxx:503 TParallelCoordEditor.cxx:504 TParallelCoordEditor.cxx:505 TParallelCoordEditor.cxx:506 TParallelCoordEditor.cxx:507 TParallelCoordEditor.cxx:508 TParallelCoordEditor.cxx:509 TParallelCoordEditor.cxx:510 TParallelCoordEditor.cxx:511 TParallelCoordEditor.cxx:512 TParallelCoordEditor.cxx:513 TParallelCoordEditor.cxx:514 TParallelCoordEditor.cxx:515 TParallelCoordEditor.cxx:516 TParallelCoordEditor.cxx:517 TParallelCoordEditor.cxx:518 TParallelCoordEditor.cxx:519 TParallelCoordEditor.cxx:520 TParallelCoordEditor.cxx:521 TParallelCoordEditor.cxx:522 TParallelCoordEditor.cxx:523 TParallelCoordEditor.cxx:524 TParallelCoordEditor.cxx:525 TParallelCoordEditor.cxx:526 TParallelCoordEditor.cxx:527 TParallelCoordEditor.cxx:528 TParallelCoordEditor.cxx:529 TParallelCoordEditor.cxx:530 TParallelCoordEditor.cxx:531 TParallelCoordEditor.cxx:532 TParallelCoordEditor.cxx:533 TParallelCoordEditor.cxx:534 TParallelCoordEditor.cxx:535 TParallelCoordEditor.cxx:536 TParallelCoordEditor.cxx:537 TParallelCoordEditor.cxx:538 TParallelCoordEditor.cxx:539 TParallelCoordEditor.cxx:540 TParallelCoordEditor.cxx:541 TParallelCoordEditor.cxx:542 TParallelCoordEditor.cxx:543 TParallelCoordEditor.cxx:544 TParallelCoordEditor.cxx:545 TParallelCoordEditor.cxx:546 TParallelCoordEditor.cxx:547 TParallelCoordEditor.cxx:548 TParallelCoordEditor.cxx:549 TParallelCoordEditor.cxx:550 TParallelCoordEditor.cxx:551 TParallelCoordEditor.cxx:552 TParallelCoordEditor.cxx:553 TParallelCoordEditor.cxx:554 TParallelCoordEditor.cxx:555 TParallelCoordEditor.cxx:556 TParallelCoordEditor.cxx:557 TParallelCoordEditor.cxx:558 TParallelCoordEditor.cxx:559 TParallelCoordEditor.cxx:560 TParallelCoordEditor.cxx:561 TParallelCoordEditor.cxx:562 TParallelCoordEditor.cxx:563 TParallelCoordEditor.cxx:564 TParallelCoordEditor.cxx:565 TParallelCoordEditor.cxx:566 TParallelCoordEditor.cxx:567 TParallelCoordEditor.cxx:568 TParallelCoordEditor.cxx:569 TParallelCoordEditor.cxx:570 TParallelCoordEditor.cxx:571 TParallelCoordEditor.cxx:572 TParallelCoordEditor.cxx:573 TParallelCoordEditor.cxx:574 TParallelCoordEditor.cxx:575 TParallelCoordEditor.cxx:576 TParallelCoordEditor.cxx:577 TParallelCoordEditor.cxx:578 TParallelCoordEditor.cxx:579 TParallelCoordEditor.cxx:580 TParallelCoordEditor.cxx:581 TParallelCoordEditor.cxx:582 TParallelCoordEditor.cxx:583 TParallelCoordEditor.cxx:584 TParallelCoordEditor.cxx:585 TParallelCoordEditor.cxx:586 TParallelCoordEditor.cxx:587 TParallelCoordEditor.cxx:588 TParallelCoordEditor.cxx:589 TParallelCoordEditor.cxx:590 TParallelCoordEditor.cxx:591 TParallelCoordEditor.cxx:592 TParallelCoordEditor.cxx:593 TParallelCoordEditor.cxx:594 TParallelCoordEditor.cxx:595 TParallelCoordEditor.cxx:596 TParallelCoordEditor.cxx:597 TParallelCoordEditor.cxx:598 TParallelCoordEditor.cxx:599 TParallelCoordEditor.cxx:600 TParallelCoordEditor.cxx:601 TParallelCoordEditor.cxx:602 TParallelCoordEditor.cxx:603 TParallelCoordEditor.cxx:604 TParallelCoordEditor.cxx:605 TParallelCoordEditor.cxx:606 TParallelCoordEditor.cxx:607 TParallelCoordEditor.cxx:608 TParallelCoordEditor.cxx:609 TParallelCoordEditor.cxx:610 TParallelCoordEditor.cxx:611 TParallelCoordEditor.cxx:612 TParallelCoordEditor.cxx:613 TParallelCoordEditor.cxx:614 TParallelCoordEditor.cxx:615 TParallelCoordEditor.cxx:616 TParallelCoordEditor.cxx:617 TParallelCoordEditor.cxx:618 TParallelCoordEditor.cxx:619 TParallelCoordEditor.cxx:620 TParallelCoordEditor.cxx:621 TParallelCoordEditor.cxx:622 TParallelCoordEditor.cxx:623 TParallelCoordEditor.cxx:624 TParallelCoordEditor.cxx:625 TParallelCoordEditor.cxx:626 TParallelCoordEditor.cxx:627 TParallelCoordEditor.cxx:628 TParallelCoordEditor.cxx:629 TParallelCoordEditor.cxx:630 TParallelCoordEditor.cxx:631 TParallelCoordEditor.cxx:632 TParallelCoordEditor.cxx:633 TParallelCoordEditor.cxx:634 TParallelCoordEditor.cxx:635 TParallelCoordEditor.cxx:636 TParallelCoordEditor.cxx:637 TParallelCoordEditor.cxx:638 TParallelCoordEditor.cxx:639 TParallelCoordEditor.cxx:640 TParallelCoordEditor.cxx:641 TParallelCoordEditor.cxx:642 TParallelCoordEditor.cxx:643 TParallelCoordEditor.cxx:644 TParallelCoordEditor.cxx:645 TParallelCoordEditor.cxx:646 TParallelCoordEditor.cxx:647 TParallelCoordEditor.cxx:648 TParallelCoordEditor.cxx:649 TParallelCoordEditor.cxx:650 TParallelCoordEditor.cxx:651 TParallelCoordEditor.cxx:652 TParallelCoordEditor.cxx:653 TParallelCoordEditor.cxx:654 TParallelCoordEditor.cxx:655 TParallelCoordEditor.cxx:656 TParallelCoordEditor.cxx:657 TParallelCoordEditor.cxx:658 TParallelCoordEditor.cxx:659 TParallelCoordEditor.cxx:660 TParallelCoordEditor.cxx:661 TParallelCoordEditor.cxx:662 TParallelCoordEditor.cxx:663 TParallelCoordEditor.cxx:664 TParallelCoordEditor.cxx:665 TParallelCoordEditor.cxx:666 TParallelCoordEditor.cxx:667 TParallelCoordEditor.cxx:668 TParallelCoordEditor.cxx:669 TParallelCoordEditor.cxx:670 TParallelCoordEditor.cxx:671 TParallelCoordEditor.cxx:672 TParallelCoordEditor.cxx:673 TParallelCoordEditor.cxx:674 TParallelCoordEditor.cxx:675 TParallelCoordEditor.cxx:676 TParallelCoordEditor.cxx:677 TParallelCoordEditor.cxx:678 TParallelCoordEditor.cxx:679 TParallelCoordEditor.cxx:680 TParallelCoordEditor.cxx:681 TParallelCoordEditor.cxx:682 TParallelCoordEditor.cxx:683 TParallelCoordEditor.cxx:684 TParallelCoordEditor.cxx:685 TParallelCoordEditor.cxx:686 TParallelCoordEditor.cxx:687 TParallelCoordEditor.cxx:688 TParallelCoordEditor.cxx:689 TParallelCoordEditor.cxx:690 TParallelCoordEditor.cxx:691 TParallelCoordEditor.cxx:692 TParallelCoordEditor.cxx:693 TParallelCoordEditor.cxx:694 TParallelCoordEditor.cxx:695 TParallelCoordEditor.cxx:696 TParallelCoordEditor.cxx:697 TParallelCoordEditor.cxx:698 TParallelCoordEditor.cxx:699 TParallelCoordEditor.cxx:700 TParallelCoordEditor.cxx:701 TParallelCoordEditor.cxx:702 TParallelCoordEditor.cxx:703 TParallelCoordEditor.cxx:704 TParallelCoordEditor.cxx:705 TParallelCoordEditor.cxx:706 TParallelCoordEditor.cxx:707 TParallelCoordEditor.cxx:708 TParallelCoordEditor.cxx:709 TParallelCoordEditor.cxx:710 TParallelCoordEditor.cxx:711 TParallelCoordEditor.cxx:712 TParallelCoordEditor.cxx:713 TParallelCoordEditor.cxx:714 TParallelCoordEditor.cxx:715 TParallelCoordEditor.cxx:716 TParallelCoordEditor.cxx:717 TParallelCoordEditor.cxx:718 TParallelCoordEditor.cxx:719 TParallelCoordEditor.cxx:720 TParallelCoordEditor.cxx:721 TParallelCoordEditor.cxx:722 TParallelCoordEditor.cxx:723 TParallelCoordEditor.cxx:724 TParallelCoordEditor.cxx:725 TParallelCoordEditor.cxx:726 TParallelCoordEditor.cxx:727 TParallelCoordEditor.cxx:728 TParallelCoordEditor.cxx:729 TParallelCoordEditor.cxx:730 TParallelCoordEditor.cxx:731 TParallelCoordEditor.cxx:732 TParallelCoordEditor.cxx:733 TParallelCoordEditor.cxx:734 TParallelCoordEditor.cxx:735 TParallelCoordEditor.cxx:736 TParallelCoordEditor.cxx:737 TParallelCoordEditor.cxx:738 TParallelCoordEditor.cxx:739 TParallelCoordEditor.cxx:740 TParallelCoordEditor.cxx:741 TParallelCoordEditor.cxx:742 TParallelCoordEditor.cxx:743 TParallelCoordEditor.cxx:744 TParallelCoordEditor.cxx:745 TParallelCoordEditor.cxx:746 TParallelCoordEditor.cxx:747 TParallelCoordEditor.cxx:748 TParallelCoordEditor.cxx:749 TParallelCoordEditor.cxx:750 TParallelCoordEditor.cxx:751 TParallelCoordEditor.cxx:752 TParallelCoordEditor.cxx:753 TParallelCoordEditor.cxx:754 TParallelCoordEditor.cxx:755 TParallelCoordEditor.cxx:756 TParallelCoordEditor.cxx:757 TParallelCoordEditor.cxx:758 TParallelCoordEditor.cxx:759 TParallelCoordEditor.cxx:760 TParallelCoordEditor.cxx:761 TParallelCoordEditor.cxx:762 TParallelCoordEditor.cxx:763 TParallelCoordEditor.cxx:764 TParallelCoordEditor.cxx:765 TParallelCoordEditor.cxx:766 TParallelCoordEditor.cxx:767 TParallelCoordEditor.cxx:768 TParallelCoordEditor.cxx:769 TParallelCoordEditor.cxx:770 TParallelCoordEditor.cxx:771 TParallelCoordEditor.cxx:772 TParallelCoordEditor.cxx:773 TParallelCoordEditor.cxx:774 TParallelCoordEditor.cxx:775 TParallelCoordEditor.cxx:776 TParallelCoordEditor.cxx:777 TParallelCoordEditor.cxx:778 TParallelCoordEditor.cxx:779 TParallelCoordEditor.cxx:780 TParallelCoordEditor.cxx:781 TParallelCoordEditor.cxx:782 TParallelCoordEditor.cxx:783 TParallelCoordEditor.cxx:784 TParallelCoordEditor.cxx:785 TParallelCoordEditor.cxx:786 TParallelCoordEditor.cxx:787 TParallelCoordEditor.cxx:788 TParallelCoordEditor.cxx:789 TParallelCoordEditor.cxx:790 TParallelCoordEditor.cxx:791 TParallelCoordEditor.cxx:792 TParallelCoordEditor.cxx:793 TParallelCoordEditor.cxx:794 TParallelCoordEditor.cxx:795 TParallelCoordEditor.cxx:796 TParallelCoordEditor.cxx:797 TParallelCoordEditor.cxx:798 TParallelCoordEditor.cxx:799 TParallelCoordEditor.cxx:800 TParallelCoordEditor.cxx:801 TParallelCoordEditor.cxx:802 TParallelCoordEditor.cxx:803 TParallelCoordEditor.cxx:804 TParallelCoordEditor.cxx:805 TParallelCoordEditor.cxx:806 TParallelCoordEditor.cxx:807 TParallelCoordEditor.cxx:808 TParallelCoordEditor.cxx:809 TParallelCoordEditor.cxx:810 TParallelCoordEditor.cxx:811 TParallelCoordEditor.cxx:812 TParallelCoordEditor.cxx:813 TParallelCoordEditor.cxx:814 TParallelCoordEditor.cxx:815 TParallelCoordEditor.cxx:816 TParallelCoordEditor.cxx:817 TParallelCoordEditor.cxx:818 TParallelCoordEditor.cxx:819 TParallelCoordEditor.cxx:820 TParallelCoordEditor.cxx:821 TParallelCoordEditor.cxx:822 TParallelCoordEditor.cxx:823 TParallelCoordEditor.cxx:824 TParallelCoordEditor.cxx:825 TParallelCoordEditor.cxx:826 TParallelCoordEditor.cxx:827 TParallelCoordEditor.cxx:828 TParallelCoordEditor.cxx:829 TParallelCoordEditor.cxx:830 TParallelCoordEditor.cxx:831 TParallelCoordEditor.cxx:832 TParallelCoordEditor.cxx:833 TParallelCoordEditor.cxx:834 TParallelCoordEditor.cxx:835 TParallelCoordEditor.cxx:836 TParallelCoordEditor.cxx:837 TParallelCoordEditor.cxx:838 TParallelCoordEditor.cxx:839 TParallelCoordEditor.cxx:840 TParallelCoordEditor.cxx:841 TParallelCoordEditor.cxx:842 TParallelCoordEditor.cxx:843 TParallelCoordEditor.cxx:844 TParallelCoordEditor.cxx:845 TParallelCoordEditor.cxx:846 TParallelCoordEditor.cxx:847 TParallelCoordEditor.cxx:848 TParallelCoordEditor.cxx:849 TParallelCoordEditor.cxx:850 TParallelCoordEditor.cxx:851 TParallelCoordEditor.cxx:852 TParallelCoordEditor.cxx:853 TParallelCoordEditor.cxx:854 TParallelCoordEditor.cxx:855 TParallelCoordEditor.cxx:856 TParallelCoordEditor.cxx:857 TParallelCoordEditor.cxx:858 TParallelCoordEditor.cxx:859 TParallelCoordEditor.cxx:860 TParallelCoordEditor.cxx:861 TParallelCoordEditor.cxx:862 TParallelCoordEditor.cxx:863 TParallelCoordEditor.cxx:864 TParallelCoordEditor.cxx:865 TParallelCoordEditor.cxx:866 TParallelCoordEditor.cxx:867 TParallelCoordEditor.cxx:868 TParallelCoordEditor.cxx:869 TParallelCoordEditor.cxx:870 TParallelCoordEditor.cxx:871 TParallelCoordEditor.cxx:872 TParallelCoordEditor.cxx:873 TParallelCoordEditor.cxx:874 TParallelCoordEditor.cxx:875 TParallelCoordEditor.cxx:876 TParallelCoordEditor.cxx:877 TParallelCoordEditor.cxx:878 TParallelCoordEditor.cxx:879 TParallelCoordEditor.cxx:880 TParallelCoordEditor.cxx:881 TParallelCoordEditor.cxx:882 TParallelCoordEditor.cxx:883 TParallelCoordEditor.cxx:884 TParallelCoordEditor.cxx:885 TParallelCoordEditor.cxx:886 TParallelCoordEditor.cxx:887 TParallelCoordEditor.cxx:888 TParallelCoordEditor.cxx:889 TParallelCoordEditor.cxx:890 TParallelCoordEditor.cxx:891 TParallelCoordEditor.cxx:892 TParallelCoordEditor.cxx:893 TParallelCoordEditor.cxx:894 TParallelCoordEditor.cxx:895 TParallelCoordEditor.cxx:896 TParallelCoordEditor.cxx:897 TParallelCoordEditor.cxx:898 TParallelCoordEditor.cxx:899 TParallelCoordEditor.cxx:900 TParallelCoordEditor.cxx:901 TParallelCoordEditor.cxx:902 TParallelCoordEditor.cxx:903 TParallelCoordEditor.cxx:904 TParallelCoordEditor.cxx:905 TParallelCoordEditor.cxx:906 TParallelCoordEditor.cxx:907 TParallelCoordEditor.cxx:908 TParallelCoordEditor.cxx:909 TParallelCoordEditor.cxx:910 TParallelCoordEditor.cxx:911 TParallelCoordEditor.cxx:912 TParallelCoordEditor.cxx:913 TParallelCoordEditor.cxx:914 TParallelCoordEditor.cxx:915 TParallelCoordEditor.cxx:916 TParallelCoordEditor.cxx:917 TParallelCoordEditor.cxx:918 TParallelCoordEditor.cxx:919 TParallelCoordEditor.cxx:920 TParallelCoordEditor.cxx:921 TParallelCoordEditor.cxx:922 TParallelCoordEditor.cxx:923 TParallelCoordEditor.cxx:924 TParallelCoordEditor.cxx:925 TParallelCoordEditor.cxx:926 TParallelCoordEditor.cxx:927 TParallelCoordEditor.cxx:928 TParallelCoordEditor.cxx:929 TParallelCoordEditor.cxx:930 TParallelCoordEditor.cxx:931 TParallelCoordEditor.cxx:932 TParallelCoordEditor.cxx:933 TParallelCoordEditor.cxx:934 TParallelCoordEditor.cxx:935 TParallelCoordEditor.cxx:936 TParallelCoordEditor.cxx:937 TParallelCoordEditor.cxx:938 TParallelCoordEditor.cxx:939 TParallelCoordEditor.cxx:940 TParallelCoordEditor.cxx:941 TParallelCoordEditor.cxx:942 TParallelCoordEditor.cxx:943 TParallelCoordEditor.cxx:944 TParallelCoordEditor.cxx:945 TParallelCoordEditor.cxx:946 TParallelCoordEditor.cxx:947 TParallelCoordEditor.cxx:948 TParallelCoordEditor.cxx:949 TParallelCoordEditor.cxx:950 TParallelCoordEditor.cxx:951 TParallelCoordEditor.cxx:952