from org.sleuthkit.autopsy.ingest import IngestModuleFactoryAdaptor
from org.sleuthkit.autopsy.ingest import IngestModuleIngestJobSettingsPanel

class IngestModuleFactory(IngestModuleFactoryAdaptor):
    def __init__(self):
        self.settings = None
        self.moduleName = "Volatility Processor"

    def getModuleDisplayName(self):
        return self.moduleName

    def getModuleDescription(self):
        return "Run Volatility agains a Memory Image"

    def getModuleVersionNumber(self):
        return "1.0"

    def getDefaultIngestJobSettings(self):
        return None

    def hasIngestJobSettingsPanel(self):
        return True

    def getIngestJobSettingsPanel(self, settings):
        self.settings settings

        return SettingsPanel(self.settings)

    def isDataSourceIngestModule(self):
        True

    def createDataSourceIngestModule(self, ingestOptions):
        return None

class SettingsPanel(IngestModuleIngestJobSettingsPanel):
    def __init__(self,settings):
        self.local_settings = settings

@@ -1,28 +1,233 @@
+from java.awt import GridBagLayout%0Afrom java.awt import GridBagConstraints%0Afrom javax.swing import JPanel%0Afrom javax.swing import JLabel%0Afrom javax.swing import JTextField%0Afrom javax.swing import JButton%0A%0A
 from org.sleuthkit.autopsy.i
@@ -263,17 +263,17 @@
 oryAdapt
-o
+e
 r%0Afrom o
@@ -343,16 +343,17 @@
 sPanel%0A%0A
+%0A
 class In
@@ -394,17 +394,17 @@
 oryAdapt
-o
+e
 r):%0A    
@@ -720,24 +720,26 @@
 n %221.0%22%0A%0A   
+ #
  def getDefa
@@ -761,32 +761,34 @@
 tings(self):%0A   
+ #
      return None
@@ -923,16 +923,18 @@
 settings
+ =
  setting
@@ -951,32 +951,34 @@
  return Settings
+UI
 Panel(self.setti
@@ -1117,16 +1117,17 @@
 n None%0A%0A
+%0A
 class Se
@@ -1128,24 +1128,26 @@
 ass Settings
+UI
 Panel(Ingest
@@ -1199,16 +1199,17 @@
 __(self,
+ 
 settings
@@ -1230,28 +1230,2341 @@
 f.local_settings = settings%0A
+        self.initLayout()%0A%0A    def initLayout(self):%0A        self.mainPanel = JPanel()%0A%0A        self.gridBagPanel = GridBagLayout()%0A        self.gridBagConstraints = GridBagConstraints()%0A        self.mainPanel.setLayout(self.gridBagConstraints)%0A%0A        # Volatility Executable Path%0A        self.dirLabel = JLabel(%22Volatility Executable Directory%22)%0A        self.dirLabel.setEnabled(True)%0A        self.gridBagConstraints.gridx = 2%0A        self.gridBagConstraints.gridy = 1%0A        self.gridBagConstraints.gridwidth = 1%0A        self.gridBagConstraints.gridheight = 1%0A        self.gridBagConstraints.fill = GridBagConstraints.BOTH%0A        self.gridBagConstraints.weightx = 1%0A        self.gridBagConstraints.weighty = 0%0A        self.gridBagConstraints.anchor = GridBagConstraints.NORTH%0A        self.gridBagPanel.setConstraints(self.dirLabel, self.gridBagConstraints)%0A        self.mainPanel.add(self.dirLabel)%0A%0A        self.volatilityDirTextField = JTextField(10)%0A        self.volatilityDirTextField.setEnabled(True)%0A        self.gridBagConstraints.gridx = 2%0A        self.gridBagConstraints.gridy = 3%0A        self.gridBagConstraints.gridwidth = 1%0A        self.gridBagConstraints.gridheight = 1%0A        self.gridBagConstraints.fill = GridBagConstraints.BOTH%0A        self.gridBagConstraints.weightx = 1%0A        self.gridBagConstraints.weighty = 0%0A        self.gridBagConstraints.anchor = GridBagConstraints.NORTH%0A        self.gridBagPanel.setConstraints(self.volatilityDirTextField, self.gridBagConstraints)%0A        self.mainPanel.add(self.volatilityDirTextField)%0A%0A        self.FindVolatilityPathButton = JButton(%22Find Dir%22, actionPerformed=self.Find_Dir)%0A        self.FindVolatilityPathButton.setEnabled(True)%0A        self.rbgmainPanel.add(self.FindVolatilityPathButton)%0A        self.gridBagConstraints.gridx = 6%0A        self.gridBagConstraints.gridy = 3%0A        self.gridBagConstraints.gridwidth = 1%0A        self.gridBagConstraints.gridheight = 1%0A        self.gridBagConstraints.fill = GridBagConstraints.BOTH%0A        self.gridBagConstraints.weightx = 1%0A        self.gridBagConstraints.weighty = 0%0A        self.gridBagConstraints.anchor = GridBagConstraints.NORTH%0A        self.gridBagPanel.setConstraints(self.FindVolatilityPathButton, self.gridBagConstraints)%0A        self.mainPanel.add(self.FindVolatilityPathButton)

Add basic UI layout