+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QLineEdit>
+#include <QLabel>
+#include <QFileDialog>
+#include <QPushButton>
+
+//#include "qui/IsFileValidator.hpp"
+#include "qui/SequenceSetupWidget.hpp"
+
+
+SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
+ QWidget(parent),
+ sequenceLineEdit(0),
+ annotLineEdit(0),
+ fastaIndexLineEdit(0),
+ seqStartLineEdit(0),
+ seqStopLineEdit(0)
+{
+
+ // Sequence row
+ sequenceLineEdit = new QLineEdit;
+ //const IsFileValidator *fileValidator = new IsFileValidator(this);
+ //sequenceLineEdit->setValidator(fileValidator);
+ QLabel *sequenceLabel = new QLabel("Sequence:");
+ sequenceLabel->setBuddy(sequenceLineEdit);
+
+ QPushButton *sequenceButton = new QPushButton("Browse...");
+ connect(sequenceButton, SIGNAL(clicked()),
+ this, SLOT(promptForFastaFile()));
+
+ // Annotation row
+ annotLineEdit = new QLineEdit;
+ //const IsFileValidator *fileValidator2 = new IsFileValidator(this);
+ //annotLineEdit->setValidator(fileValidator2);
+ QLabel *annotLabel = new QLabel("Label:");
+ annotLabel->setBuddy(annotLineEdit);
+
+ QPushButton *annotButton = new QPushButton("Browse...");
+ connect(annotButton, SIGNAL(clicked()),
+ this, SLOT(promptForAnnotFile()));
+
+ // Index row
+ fastaIndexLineEdit = new QLineEdit;
+ //fastaIndexLineEdit->setMaximumWidth(100);
+
+ QLabel *fastaIndexLabel = new QLabel("Fasta Index:");
+ fastaIndexLabel->setBuddy(fastaIndexLineEdit);
+
+ seqStartLineEdit = new QLineEdit;
+ //seqStartLineEdit->setMinimumWidth(60);
+ //seqStartLineEdit->setMaximumWidth(80);
+
+ QLabel *seqStartLabel = new QLabel("Sequence Start:");
+ seqStartLabel->setBuddy(seqStartLineEdit);
+
+ seqStopLineEdit = new QLineEdit;
+ //seqStopLineEdit->setMinimumWidth(40);
+ //seqStopLineEdit->setMaximumWidth(60);
+
+ QLabel *seqStopLabel = new QLabel("Sequence Stop:");
+ seqStopLabel->setBuddy(seqStopLineEdit);
+
+ // Layout
+ QHBoxLayout *sequenceRowLayout = new QHBoxLayout;
+ QHBoxLayout *annotRowLayout = new QHBoxLayout;
+ QHBoxLayout *indexRowLayout = new QHBoxLayout;
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+
+ sequenceRowLayout->addWidget(sequenceLabel);
+ sequenceRowLayout->addWidget(sequenceLineEdit);
+ sequenceRowLayout->addWidget(sequenceButton);
+
+ annotRowLayout->addWidget(annotLabel);
+ annotRowLayout->addWidget(annotLineEdit);
+ annotRowLayout->addWidget(annotButton);
+
+ indexRowLayout->addWidget(fastaIndexLabel);
+ indexRowLayout->addWidget(fastaIndexLineEdit);
+ indexRowLayout->addWidget(seqStartLabel);
+ indexRowLayout->addWidget(seqStartLineEdit);
+ indexRowLayout->addWidget(seqStopLabel);
+ indexRowLayout->addWidget(seqStopLineEdit);
+
+ mainLayout->addLayout(sequenceRowLayout);
+ mainLayout->addLayout(annotRowLayout);
+ mainLayout->addLayout(indexRowLayout);
+ setLayout(mainLayout);
+}
+
+
+void SequenceSetupWidget::promptForFastaFile()
+{
+ QString fastaFilePath = QFileDialog::getOpenFileName(this,
+ "Choose a fasta file",
+ ".",
+ "Fasta (*.fa *.fasta *.fsa *.txt)");
+ if (fastaFilePath.isEmpty())
+ return;
+
+ sequenceLineEdit->setText(fastaFilePath);
+ return;
+}
+
+void SequenceSetupWidget::promptForAnnotFile()
+{
+ QString annotFilePath = QFileDialog::getOpenFileName(this,
+ "Choose a annotation file",
+ ".",
+ "Annot (*.txt)");
+ if (annotFilePath.isEmpty())
+ return;
+
+ annotLineEdit->setText(annotFilePath);
+ return;
+}