# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.7
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(966, 900)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(966, 700))
        MainWindow.setMaximumSize(QtCore.QSize(966, 900))
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.VisualisationTab = QtWidgets.QTabWidget(self.centralWidget)
        self.VisualisationTab.setGeometry(QtCore.QRect(30, 10, 921, 741))
        self.VisualisationTab.setObjectName("VisualisationTab")
        self.visualisation_tab = QtWidgets.QWidget()
        self.visualisation_tab.setObjectName("visualisation_tab")
        self.clustering_tab_widget = QtWidgets.QTabWidget(self.visualisation_tab)
        self.clustering_tab_widget.setGeometry(QtCore.QRect(0, 10, 921, 711))
        self.clustering_tab_widget.setTabPosition(QtWidgets.QTabWidget.North)
        self.clustering_tab_widget.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.clustering_tab_widget.setObjectName("clustering_tab_widget")
        self.clustering_tab_2 = QtWidgets.QWidget()
        self.clustering_tab_2.setObjectName("clustering_tab_2")
        self.cluster_combo = QtWidgets.QComboBox(self.clustering_tab_2)
        self.cluster_combo.setGeometry(QtCore.QRect(190, 30, 131, 26))
        self.cluster_combo.setObjectName("cluster_combo")
        self.cluster_combo.addItem("")
        self.cluster_combo.addItem("")
        self.clustering_frame = QtWidgets.QFrame(self.clustering_tab_2)
        self.clustering_frame.setGeometry(QtCore.QRect(0, 70, 911, 561))
        self.clustering_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.clustering_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.clustering_frame.setObjectName("clustering_frame")
        self.label = QtWidgets.QLabel(self.clustering_tab_2)
        self.label.setGeometry(QtCore.QRect(190, 10, 171, 16))
        self.label.setObjectName("label")
        self.decomp_combo = QtWidgets.QComboBox(self.clustering_tab_2)
        self.decomp_combo.setGeometry(QtCore.QRect(10, 30, 161, 26))
        self.decomp_combo.setObjectName("decomp_combo")
        self.decomp_combo.addItem("")
        self.decomp_combo.addItem("")
        self.label_4 = QtWidgets.QLabel(self.clustering_tab_2)
        self.label_4.setGeometry(QtCore.QRect(20, 10, 101, 16))
        self.label_4.setObjectName("label_4")
        self.extra_plot_check_box = QtWidgets.QCheckBox(self.clustering_tab_2)
        self.extra_plot_check_box.setGeometry(QtCore.QRect(550, 30, 221, 20))
        self.extra_plot_check_box.setObjectName("extra_plot_check_box")
        self.refresh_cluster = QtWidgets.QPushButton(self.clustering_tab_2)
        self.refresh_cluster.setGeometry(QtCore.QRect(780, 20, 115, 41))
        self.refresh_cluster.setObjectName("refresh_cluster")
        self.label_5 = QtWidgets.QLabel(self.clustering_tab_2)
        self.label_5.setGeometry(QtCore.QRect(330, 10, 211, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_5.setFont(font)
        self.label_5.setObjectName("label_5")
        self.cluster_spin_box = QtWidgets.QSpinBox(self.clustering_tab_2)
        self.cluster_spin_box.setGeometry(QtCore.QRect(410, 30, 47, 24))
        self.cluster_spin_box.setMinimum(2)
        self.cluster_spin_box.setMaximum(10)
        self.cluster_spin_box.setObjectName("cluster_spin_box")
        self.silhouette_score_label = QtWidgets.QLabel(self.clustering_tab_2)
        self.silhouette_score_label.setGeometry(QtCore.QRect(50, 640, 821, 20))
        self.silhouette_score_label.setAlignment(QtCore.Qt.AlignCenter)
        self.silhouette_score_label.setObjectName("silhouette_score_label")
        self.clustering_tab_widget.addTab(self.clustering_tab_2, "")
        self.silhouette_tab = QtWidgets.QWidget()
        self.silhouette_tab.setObjectName("silhouette_tab")
        self.silhouette_frame = QtWidgets.QFrame(self.silhouette_tab)
        self.silhouette_frame.setGeometry(QtCore.QRect(0, 90, 911, 551))
        self.silhouette_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.silhouette_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.silhouette_frame.setObjectName("silhouette_frame")
        self.silhouette_table = QtWidgets.QTableWidget(self.silhouette_frame)
        self.silhouette_table.setGeometry(QtCore.QRect(10, 10, 891, 531))
        self.silhouette_table.setMinimumSize(QtCore.QSize(891, 0))
        self.silhouette_table.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
        self.silhouette_table.setObjectName("silhouette_table")
        self.silhouette_table.setColumnCount(7)
        self.silhouette_table.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(3, item)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(4, item)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(5, item)
        item = QtWidgets.QTableWidgetItem()
        self.silhouette_table.setHorizontalHeaderItem(6, item)
        self.silhouette_table.horizontalHeader().setVisible(False)
        self.silhouette_table.horizontalHeader().setCascadingSectionResizes(False)
        self.silhouette_table.horizontalHeader().setDefaultSectionSize(128)
        self.refresh_silhouette = QtWidgets.QPushButton(self.silhouette_tab)
        self.refresh_silhouette.setGeometry(QtCore.QRect(510, 30, 115, 41))
        self.refresh_silhouette.setObjectName("refresh_silhouette")
        self.label_7 = QtWidgets.QLabel(self.silhouette_tab)
        self.label_7.setGeometry(QtCore.QRect(670, 20, 191, 16))
        self.label_7.setAlignment(QtCore.Qt.AlignCenter)
        self.label_7.setObjectName("label_7")
        self.optimum_clusters = QtWidgets.QLabel(self.silhouette_tab)
        self.optimum_clusters.setGeometry(QtCore.QRect(630, 40, 281, 20))
        self.optimum_clusters.setAlignment(QtCore.Qt.AlignCenter)
        self.optimum_clusters.setObjectName("optimum_clusters")
        self.groupBox = QtWidgets.QGroupBox(self.silhouette_tab)
        self.groupBox.setGeometry(QtCore.QRect(0, 0, 351, 80))
        self.groupBox.setObjectName("groupBox")
        self.max_cluster_spin_box = QtWidgets.QSpinBox(self.groupBox)
        self.max_cluster_spin_box.setGeometry(QtCore.QRect(220, 50, 47, 24))
        self.max_cluster_spin_box.setMinimum(3)
        self.max_cluster_spin_box.setMaximum(12)
        self.max_cluster_spin_box.setObjectName("max_cluster_spin_box")
        self.min_cluster_spin_box = QtWidgets.QSpinBox(self.groupBox)
        self.min_cluster_spin_box.setGeometry(QtCore.QRect(50, 50, 47, 24))
        self.min_cluster_spin_box.setMinimum(2)
        self.min_cluster_spin_box.setMaximum(6)
        self.min_cluster_spin_box.setObjectName("min_cluster_spin_box")
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setGeometry(QtCore.QRect(20, 30, 161, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.label_6 = QtWidgets.QLabel(self.groupBox)
        self.label_6.setGeometry(QtCore.QRect(190, 30, 161, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_6.setFont(font)
        self.label_6.setObjectName("label_6")
        self.groupBox_3 = QtWidgets.QGroupBox(self.silhouette_tab)
        self.groupBox_3.setGeometry(QtCore.QRect(360, 0, 131, 80))
        self.groupBox_3.setObjectName("groupBox_3")
        self.components_spinner = QtWidgets.QSpinBox(self.groupBox_3)
        self.components_spinner.setGeometry(QtCore.QRect(40, 40, 47, 24))
        self.components_spinner.setMinimum(1)
        self.components_spinner.setMaximum(18)
        self.components_spinner.setObjectName("components_spinner")
        self.label_9 = QtWidgets.QLabel(self.groupBox_3)
        self.label_9.setGeometry(QtCore.QRect(10, 20, 121, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_9.setFont(font)
        self.label_9.setObjectName("label_9")
        self.clustering_tab_widget.addTab(self.silhouette_tab, "")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.groupBox_2 = QtWidgets.QGroupBox(self.tab)
        self.groupBox_2.setGeometry(QtCore.QRect(0, 0, 371, 80))
        self.groupBox_2.setObjectName("groupBox_2")
        self.max_cluster_spin_box_elbow = QtWidgets.QSpinBox(self.groupBox_2)
        self.max_cluster_spin_box_elbow.setGeometry(QtCore.QRect(220, 50, 47, 24))
        self.max_cluster_spin_box_elbow.setMinimum(5)
        self.max_cluster_spin_box_elbow.setMaximum(10)
        self.max_cluster_spin_box_elbow.setObjectName("max_cluster_spin_box_elbow")
        self.min_cluster_spin_box_elbow = QtWidgets.QSpinBox(self.groupBox_2)
        self.min_cluster_spin_box_elbow.setGeometry(QtCore.QRect(50, 50, 47, 24))
        self.min_cluster_spin_box_elbow.setMinimum(1)
        self.min_cluster_spin_box_elbow.setMaximum(6)
        self.min_cluster_spin_box_elbow.setObjectName("min_cluster_spin_box_elbow")
        self.label_3 = QtWidgets.QLabel(self.groupBox_2)
        self.label_3.setGeometry(QtCore.QRect(20, 30, 161, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")
        self.label_8 = QtWidgets.QLabel(self.groupBox_2)
        self.label_8.setGeometry(QtCore.QRect(190, 30, 161, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_8.setFont(font)
        self.label_8.setObjectName("label_8")
        self.refresh_elbow = QtWidgets.QPushButton(self.tab)
        self.refresh_elbow.setGeometry(QtCore.QRect(520, 30, 115, 41))
        self.refresh_elbow.setObjectName("refresh_elbow")
        self.elbow_frame = QtWidgets.QFrame(self.tab)
        self.elbow_frame.setGeometry(QtCore.QRect(0, 90, 911, 551))
        self.elbow_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.elbow_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.elbow_frame.setObjectName("elbow_frame")
        self.groupBox_4 = QtWidgets.QGroupBox(self.tab)
        self.groupBox_4.setGeometry(QtCore.QRect(380, 0, 131, 80))
        self.groupBox_4.setObjectName("groupBox_4")
        self.components_spinner_elbow = QtWidgets.QSpinBox(self.groupBox_4)
        self.components_spinner_elbow.setGeometry(QtCore.QRect(40, 40, 47, 24))
        self.components_spinner_elbow.setMinimum(1)
        self.components_spinner_elbow.setMaximum(15)
        self.components_spinner_elbow.setObjectName("components_spinner_elbow")
        self.label_10 = QtWidgets.QLabel(self.groupBox_4)
        self.label_10.setGeometry(QtCore.QRect(10, 20, 121, 16))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_10.setFont(font)
        self.label_10.setObjectName("label_10")
        self.clustering_tab_widget.addTab(self.tab, "")
        self.VisualisationTab.addTab(self.visualisation_tab, "")
        self.directory_browse_button = QtWidgets.QPushButton(self.centralWidget)
        self.directory_browse_button.setGeometry(QtCore.QRect(410, 699, 141, 41))
        self.directory_browse_button.setObjectName("directory_browse_button")
        self.ExtractionProgress = QtWidgets.QProgressBar(self.centralWidget)
        self.ExtractionProgress.setGeometry(QtCore.QRect(37, 750, 911, 31))
        self.ExtractionProgress.setMaximum(1000)
        self.ExtractionProgress.setProperty("value", 0)
        self.ExtractionProgress.setObjectName("ExtractionProgress")
        self.FileExtractionLabel = QtWidgets.QLabel(self.centralWidget)
        self.FileExtractionLabel.setGeometry(QtCore.QRect(38, 770, 911, 31))
        self.FileExtractionLabel.setText("")
        self.FileExtractionLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.FileExtractionLabel.setObjectName("FileExtractionLabel")
        MainWindow.setCentralWidget(self.centralWidget)
        self.mainToolBar = QtWidgets.QToolBar(MainWindow)
        self.mainToolBar.setObjectName("mainToolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
        self.statusBar = QtWidgets.QStatusBar(MainWindow)
        self.statusBar.setObjectName("statusBar")
        MainWindow.setStatusBar(self.statusBar)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 966, 22))
        self.menuBar.setObjectName("menuBar")
        MainWindow.setMenuBar(self.menuBar)
        self.actionBrowse = QtWidgets.QAction(MainWindow)
        self.actionBrowse.setObjectName("actionBrowse")
        self.actionBrowse_to_Binary_Directory = QtWidgets.QAction(MainWindow)
        self.actionBrowse_to_Binary_Directory.setObjectName("actionBrowse_to_Binary_Directory")
        self.actionExtract_Features = QtWidgets.QAction(MainWindow)
        self.actionExtract_Features.setObjectName("actionExtract_Features")

        self.retranslateUi(MainWindow)
        self.VisualisationTab.setCurrentIndex(1)
        self.clustering_tab_widget.setCurrentIndex(2)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Malware Categorisation Using Machine Learning"))
        self.cluster_combo.setItemText(0, _translate("MainWindow", "KMeans"))
        self.cluster_combo.setItemText(1, _translate("MainWindow", "MeanShift"))
        self.label.setText(_translate("MainWindow", "Clustering Algorithm"))
        self.decomp_combo.setItemText(0, _translate("MainWindow", "PCA"))
        self.decomp_combo.setItemText(1, _translate("MainWindow", "NMF"))
        self.label_4.setText(_translate("MainWindow", "Decomposition"))
        self.extra_plot_check_box.setText(_translate("MainWindow", "Show Cluster Centers as Labels"))
        self.refresh_cluster.setText(_translate("MainWindow", "Refresh Plot"))
        self.label_5.setText(_translate("MainWindow", "Number of Clusters(KMeans Only)"))
        self.silhouette_score_label.setText(_translate("MainWindow", "Silhouette Score: "))
        self.clustering_tab_widget.setTabText(self.clustering_tab_widget.indexOf(self.clustering_tab_2), _translate("MainWindow", "Clustering"))
        self.silhouette_table.setSortingEnabled(True)
        item = self.silhouette_table.horizontalHeaderItem(0)
        item.setText(_translate("MainWindow", "Decompositon"))
        item = self.silhouette_table.horizontalHeaderItem(1)
        item.setText(_translate("MainWindow", "Components"))
        item = self.silhouette_table.horizontalHeaderItem(2)
        item.setText(_translate("MainWindow", "Clustering"))
        item = self.silhouette_table.horizontalHeaderItem(3)
        item.setText(_translate("MainWindow", "Clusters"))
        item = self.silhouette_table.horizontalHeaderItem(4)
        item.setText(_translate("MainWindow", "Silhouette Score"))
        item = self.silhouette_table.horizontalHeaderItem(5)
        item.setText(_translate("MainWindow", "Detection Accuracy"))
        item = self.silhouette_table.horizontalHeaderItem(6)
        item.setText(_translate("MainWindow", "Clustering Accuracy"))
        self.refresh_silhouette.setText(_translate("MainWindow", "Refresh Table"))
        self.label_7.setText(_translate("MainWindow", "Optimal KMeans Setup"))
        self.optimum_clusters.setText(_translate("MainWindow", "Unknown"))
        self.groupBox.setTitle(_translate("MainWindow", "KMeans"))
        self.label_2.setText(_translate("MainWindow", "Min. Number of Clusters"))
        self.label_6.setText(_translate("MainWindow", "Max. Number of Clusters"))
        self.groupBox_3.setTitle(_translate("MainWindow", "Components"))
        self.label_9.setText(_translate("MainWindow", "Max. Components"))
        self.clustering_tab_widget.setTabText(self.clustering_tab_widget.indexOf(self.silhouette_tab), _translate("MainWindow", "Algorithm Evaluation"))
        self.groupBox_2.setTitle(_translate("MainWindow", "KMeans"))
        self.label_3.setText(_translate("MainWindow", "Min. Number of Clusters"))
        self.label_8.setText(_translate("MainWindow", "Max. Number of Clusters"))
        self.refresh_elbow.setText(_translate("MainWindow", "Refresh Plot"))
        self.groupBox_4.setTitle(_translate("MainWindow", "Components"))
        self.label_10.setText(_translate("MainWindow", "Max. Components"))
        self.clustering_tab_widget.setTabText(self.clustering_tab_widget.indexOf(self.tab), _translate("MainWindow", "Elbow Plot"))
        self.VisualisationTab.setTabText(self.VisualisationTab.indexOf(self.visualisation_tab), _translate("MainWindow", "ML Visualisation"))
        self.directory_browse_button.setText(_translate("MainWindow", "Browse + Extract"))
        self.actionBrowse.setText(_translate("MainWindow", "Browse"))
        self.actionBrowse_to_Binary_Directory.setText(_translate("MainWindow", "Browse to Binary Directory"))
        self.actionExtract_Features.setText(_translate("MainWindow", "Extract Features"))

