def show_main_window(self): self.graph_form = matplotlibWidget() if self.widget: self.widget.destroy() self.widget = None; self.widget = QWidget() self.widget.setMinimumSize(800, 600) btn_api = QtGui.QPushButton("Recommend Modules", self.widget) btn_api.move(30, 20) btn_mashup = QtGui.QPushButton("Recommend Workflows", self.widget) btn_mashup.move(200, 20) self.textboxLabel = QLabel(self.widget) self.textboxLabel.setText("Describe your goals:") self.textboxLabel.move(35, 60) self.textboxLabel.show self.textbox = QTextEdit(self.widget) self.textbox.move(30, 80) self.textbox.setFixedWidth(300) self.textbox.setFixedHeight(28) btn_api.clicked.connect(self.api_button_clicked) btn_mashup.clicked.connect(self.mashups_button_clicked) self.table = QTableView(self.widget) self.table.clicked.connect(self.table_clicked) self.table.setMinimumSize(740, 500) self.table.resizeColumnsToContents() self.table.move(30, 120) self.widget.show() self.add_btn = QPushButton(self.widget) self.add_btn.clicked.connect(self.add_new_api) self.add_btn.setText("Add to Palette") self.add_btn.hide() self.add_btn.move(650, 20) self.recommendLabel = QLabel(self.widget) self.recommendLabel.setText("Also Used") self.recommendLabel.move(30, 95) self.recommendLabel.hide() self.switch_btn_apis = QPushButton(self.widget) self.switch_btn_apis.clicked.connect(self._show_related_apis) self.switch_btn_apis.setText("Related Mashup") self.switch_btn_apis.move(500, 20) self.switch_btn_apis.hide() self.switch_btn_mashups = QPushButton(self.widget) self.switch_btn_mashups.clicked.connect(self._show_related_mashups) self.switch_btn_mashups.setText("Related API") self.switch_btn_mashups.move(500, 20) self.switch_btn_mashups.hide()
def show_main_window(self): self.graph_form = matplotlibWidget() if self.widget: self.widget.destroy() self.widget = None; self.widget = QWidget() self.widget.setMinimumSize(800, 600) ds_label = QLabel(self.widget) ds_label.setText("Data Source:") ds_label.move(30,20) self.ds = QtGui.QComboBox(self.widget) self.ds.addItem("NASA/MODIS") self.ds.addItem("NASA/AMSRE") self.ds.move(30, 40) var_label = QLabel(self.widget) var_label.setText("Variable Name:") var_label.move(150,20) self.var = QtGui.QComboBox(self.widget) self.var.addItem("Precipitation Flux") self.var.addItem("Total Cloud Fraction") self.var.move(150, 40) self.var.setCurrentIndex(1) self.sdate = QTextEdit("2004-01", self.widget) self.sdate.move(30, 100) self.sdate.setFixedWidth(100) self.sdate.setFixedHeight(30) # print self.sdate.toPlainText() sdate_label = QLabel(self.widget) sdate_label.setText("Start Date") sdate_label.move(30, 80) self.edate = QTextEdit("2004-12", self.widget) self.edate.move(150, 100) self.edate.setFixedWidth(100) self.edate.setFixedHeight(30) edate_label = QLabel(self.widget) edate_label.setText("End Date") edate_label.move(150, 80) self.slat = QTextEdit("-90", self.widget) self.slat.move(270, 100) self.slat.setFixedWidth(100) self.slat.setFixedHeight(30) slat_label = QLabel(self.widget) slat_label.setText("Start Lat (deg)") slat_label.move(270, 80) self.elat = QTextEdit("90", self.widget) self.elat.move(390, 100) self.elat.setFixedWidth(100) self.elat.setFixedHeight(30) elat_label = QLabel(self.widget) elat_label.setText("End Lat (deg)") elat_label.move(390, 80) self.slon = QTextEdit("0", self.widget) self.slon.move(510, 100) self.slon.setFixedWidth(100) self.slon.setFixedHeight(30) slon_label = QLabel(self.widget) slon_label.setText("Start Lon (deg)") slon_label.move(510, 80) self.elon = QTextEdit("360", self.widget) self.elon.move(630, 100) self.elon.setFixedWidth(100) self.elon.setFixedHeight(30) elon_label = QLabel(self.widget) elon_label.setText("End Lon (deg)") elon_label.move(630, 80) self.cb1 = QtGui.QCheckBox('January', self.widget) self.cb1.move(30,160) self.cb1.setChecked(True) self.cb2 = QtGui.QCheckBox('February', self.widget) self.cb2.move(130,160) self.cb2.setChecked(True) self.cb3 = QtGui.QCheckBox('March', self.widget) self.cb3.move(230,160) self.cb3.setChecked(True) self.cb4 = QtGui.QCheckBox('April', self.widget) self.cb4.move(330,160) self.cb4.setChecked(True) self.cb5 = QtGui.QCheckBox('May', self.widget) self.cb5.move(430,160) self.cb5.setChecked(True) self.cb6 = QtGui.QCheckBox('June', self.widget) self.cb6.move(530,160) self.cb6.setChecked(True) self.cb7 = QtGui.QCheckBox('July', self.widget) self.cb7.move(30,200) self.cb7.setChecked(True) self.cb8 = QtGui.QCheckBox('August', self.widget) self.cb8.move(130,200) self.cb8.setChecked(True) self.cb9 = QtGui.QCheckBox('September', self.widget) self.cb9.move(230,200) self.cb9.setChecked(True) self.cb10 = QtGui.QCheckBox('October', self.widget) self.cb10.move(330,200) self.cb10.setChecked(True) self.cb11 = QtGui.QCheckBox('November', self.widget) self.cb11.move(430,200) self.cb11.setChecked(True) self.cb12 = QtGui.QCheckBox('December', self.widget) self.cb12.move(530,200) self.cb12.setChecked(True) cscale_label = QLabel(self.widget) cscale_label.setText("Color Scale") cscale_label.move(30, 240) self.rbg = QtGui.QButtonGroup(self.widget) self.rb1 = QtGui.QRadioButton('Linear', self.widget) self.rb1.move(130,240) self.rb2 = QtGui.QRadioButton('Logarithmic', self.widget) self.rb2.move(230,240) self.rbg.addButton(self.rb1) self.rbg.addButton(self.rb2) self.rb1.setChecked(True) # print self.rb1.isChecked() self.btn_call_service = QtGui.QPushButton("Call Service", self.widget) self.btn_call_service.move(30,280) self.btn_call_service.clicked.connect(self.button_call_service) btn_api = QtGui.QPushButton("Recommend Modules", self.widget) btn_api.move(30, 20) btn_api.hide() btn_mashup = QtGui.QPushButton("Recommend Workflows", self.widget) btn_mashup.move(200, 20) btn_mashup.hide() self.widget.show()
def show_main_window(self): # Get datasets from server data = json.load(urllib2.urlopen(RECO_API_SERVER_ADDR + "/getAllDataSets/")) # self.climateData = self.loadClimateDataSet(data) self.climateData = self.parseServerData(data) self.graph_form = matplotlibWidget() if self.widget: self.widget.destroy() self.widget = None; self.widget = QWidget() self.widget.setMinimumSize(1000, 900) self.widget.setWindowTitle("Recommendation PlugIn") margin = 30 # Search Feature self.textboxLabel = QLabel(self.widget) self.textboxLabel.setText("Describe your goals:") self.textboxLabel.move(30, 20) self.textboxLabel.show self.textbox = QTextEdit(self.widget) self.textbox.move(30, 45) self.textbox.setFixedWidth(300) self.textbox.setFixedHeight(28) btn_api = QtGui.QPushButton("Recommend Services", self.widget) btn_api.move(30, 80) btn_mashup = QtGui.QPushButton("Recommend Workflows", self.widget) btn_mashup.move(230, 80) btn_api.clicked.connect(self.api_button_clicked) btn_mashup.clicked.connect(self.mashups_button_clicked) self.table = QTableView(self.widget) self.table.clicked.connect(self.table_clicked) self.table.setMinimumSize(600, 300) self.table.resizeColumnsToContents() self.table.move(30, 120) # Top Service self.textboxLabel = QLabel("Top Datasets (Usage)", self.widget) self.textboxLabel.move(650, 20) self.textboxLabel.show self.listWidget = QListWidget(self.widget) topDatasets = json.load(urllib2.urlopen(RECO_API_SERVER_ADDR + "/getTop10UsedDataset/")) for topDataset in topDatasets: id = int(topDataset["datasetID"]) item = QListWidgetItem("{} ({})".format(self.climateData[id]["name"], topDataset["usage"])) item.setData(Qt.UserRole,self.climateData[id]) self.listWidget.addItem(item) self.listWidget.move(650, 45) self.listWidget.resize(280, 380) self.listWidget.show() self.listWidget.clicked.connect(lambda: self.dataset_clicked(\ self.listWidget.currentItem().data(Qt.UserRole))) # Username input box and button for generating recommendations userTopOffset = 430 self.textboxLabel = QLabel("Enter username for dataset recommendations:", self.widget) self.textboxLabel.move(30, userTopOffset) self.textboxLabel.show() self.userTextbox = QTextEdit(self.widget) self.userTextbox.move(30, userTopOffset + 30) self.userTextbox.setFixedWidth(200) self.userTextbox.setFixedHeight(28) userBtn = QPushButton("Recommend Datasets", self.widget) userBtn.move(30 + self.userTextbox.width() + 10, userTopOffset + 30) #print RECO_API_SERVER_ADDR + "/getTop5RecommendationByUserName/" ## Jan.20 2016 ## Change the API names here by shenggu ## According to github.com/cmusv-sc/RecommendationAPIs ## userBtn.clicked.connect(lambda: self.getRecommendations(RECO_API_SERVER_ADDR + "/getTopKContentBasedCFRecommendedDatasetByUsername", self.recListFeature)) userBtn.clicked.connect(lambda: self.getRecommendations(RECO_API_SERVER_ADDR + "/getTopKItemBasedCFRecommendedDatasetByUsername", self.recListItem)) userBtn.clicked.connect(lambda: self.getRecommendations(RECO_API_SERVER_ADDR + "/getTopKUserBasedCFRecommendedDatasetByUsername", self.recListUser)) userBtn.show() # Test QlineEdit # self.userTextbox2 = QLineEdit(self.widget) # self.userTextbox.move(200, userTopOffset + 30) # self.userTextbox.setFixedWidth(200) # self.userTextbox.setFixedHeight(28) # Feature Recommendations recTopOffset = 500 self.textboxLabel = QLabel("Feature Recommendations", self.widget) self.textboxLabel.move(30, recTopOffset) self.textboxLabel.show() self.recListFeature = QListWidget(self.widget) self.recListFeature.move(30, recTopOffset + 30) self.recListFeature.resize(280, 250) self.recListFeature.show() # Item-based Recommendations self.textboxLabel = QLabel("Item-based Recommendations", self.widget) self.textboxLabel.move(340, recTopOffset) self.textboxLabel.show self.recListItem = QListWidget(self.widget) self.recListItem.move(340, recTopOffset + 30) self.recListItem.resize(280, 250) self.recListItem.show() # User-based Recommendations self.textboxLabel = QLabel("User-based Recommendations", self.widget) self.textboxLabel.move(650, recTopOffset) self.textboxLabel.show self.recListUser = QListWidget(self.widget) self.recListUser.move(650, recTopOffset + 30) self.recListUser.resize(280, 250) self.recListUser.show() # Categories categoryTopOffset = 300 self.textboxLabel = QLabel("Categories", self.widget) self.textboxLabel.move(30, recTopOffset + categoryTopOffset) self.textboxLabel.show button1 = QPushButton("By Agency", self.widget) button1.clicked.connect(lambda: self.listCategory_clicked("agency")) button1.move(30, recTopOffset + categoryTopOffset + 30) button1.show() button2 = QPushButton("By Instrument", self.widget) button2.clicked.connect(lambda: self.listCategory_clicked("instrument")) button2.move(margin + button1.width() + 20, recTopOffset + categoryTopOffset + 30) button2.show() button3 = QPushButton("By Data Source Input", self.widget) button3.clicked.connect(lambda: self.listCategory_clicked("input")) button3.move(margin + button1.width() + button2.width() + 40, recTopOffset + categoryTopOffset + 30) button3.show() # Show and move widget self.widget.move(QtGui.QApplication.desktop().screen().rect().center() - \ self.widget.rect().center()) self.widget.show() # Service and workflow recommendation self.add_btn = QPushButton("Add to Palette", self.widget) self.add_btn.clicked.connect(self.add_new_api) self.add_btn.hide() self.add_btn.setFixedWidth(160) self.add_btn.move(470, 20) self.recommendLabel = QLabel("Also Used", self.widget) self.recommendLabel.hide() self.recommendLabel.setFixedWidth(160) self.recommendLabel.move(470, 50) self.switch_btn_apis = QPushButton("Related Workflows", self.widget) self.switch_btn_apis.clicked.connect(self._show_related_apis) self.switch_btn_apis.hide() self.switch_btn_apis.setFixedWidth(160) self.switch_btn_apis.move(470, 80) self.switch_btn_mashups = QPushButton("Related Modules", self.widget) self.switch_btn_mashups.clicked.connect(self._show_related_mashups) self.switch_btn_mashups.hide() self.switch_btn_mashups.setFixedWidth(160) self.switch_btn_mashups.move(470, 80)