Index: src/sas/qtgui/DataExplorer.py
===================================================================
--- src/sas/qtgui/DataExplorer.py	(revision 55d89f89e773b2faf78331b3fdae988c7fe5f2ce)
+++ src/sas/qtgui/DataExplorer.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -23,4 +23,5 @@
 from sas.qtgui.Plotter2D import Plotter2D
 from sas.qtgui.DroppableDataLoadWidget import DroppableDataLoadWidget
+from sas.qtgui.MaskEditor import MaskEditor
 
 class DataExplorerWindow(DroppableDataLoadWidget):
@@ -801,6 +802,11 @@
         """
         """
-        print "showEditDataMask"
-        pass
+        index = self.treeView.selectedIndexes()[0]
+        model_item = self.model.itemFromIndex(self.data_proxy.mapToSource(index))
+        data = GuiUtils.dataFromItem(model_item)
+
+        mask_editor = MaskEditor(self, data)
+
+        mask_editor.exec_()
 
     def loadComplete(self, output):
Index: src/sas/qtgui/MaskEditor.py
===================================================================
--- src/sas/qtgui/MaskEditor.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
+++ src/sas/qtgui/MaskEditor.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -0,0 +1,30 @@
+from PyQt4 import QtGui
+
+from sas.sasgui.guiframe.dataFitting import Data2D
+
+# Local UI
+from sas.qtgui.UI.MaskEditorUI import Ui_MaskEditorUI
+from sas.qtgui.Plotter2D import Plotter2DWidget
+
+class MaskEditor(QtGui.QDialog, Ui_MaskEditorUI):
+    def __init__(self, parent=None, data=None):
+        super(MaskEditor, self).__init__()
+
+        assert(isinstance(data, Data2D))
+
+        self.setupUi(self)
+
+        self.data = data
+        filename = data.name
+        self.setWindowTitle("Mask Editor for %s" % filename)
+
+        self.plotter = Plotter2DWidget(self, manager=parent, quickplot=True)
+        self.plotter.data = self.data
+
+        layout = QtGui.QHBoxLayout()
+        layout.setContentsMargins(0, 0, 0, 0)
+        self.frame.setLayout(layout)
+        layout.addWidget(self.plotter)
+
+        self.plotter.plot()
+
Index: src/sas/qtgui/Plotter.py
===================================================================
--- src/sas/qtgui/Plotter.py	(revision 6d05e1d115a38b7805a83cb480014af70b58ef75)
+++ src/sas/qtgui/Plotter.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -7,7 +7,7 @@
 from sas.qtgui.PlotterBase import PlotterBase
 
-class Plotter(PlotterBase):
-    def __init__(self, parent=None, quickplot=False):
-        super(Plotter, self).__init__(parent, quickplot=quickplot)
+class PlotterWidget(PlotterBase):
+    def __init__(self, parent=None, manager=None, quickplot=False):
+        super(PlotterWidget, self).__init__(parent, manager=manager, quickplot=quickplot)
 
     @property
@@ -199,2 +199,10 @@
         # Plot the updated chart
         self.plot(marker='o', linestyle='')
+
+
+class Plotter(QtGui.QDialog, PlotterWidget):
+    def __init__(self, parent=None, quickplot=False):
+
+        QtGui.QDialog.__init__(self)
+        PlotterWidget.__init__(self, manager=parent, quickplot=quickplot)
+
Index: src/sas/qtgui/Plotter2D.py
===================================================================
--- src/sas/qtgui/Plotter2D.py	(revision 64f1e93f1ae889a528e0186e82bbbc473c1cc6ee)
+++ src/sas/qtgui/Plotter2D.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -11,8 +11,8 @@
 from mpl_toolkits.mplot3d import Axes3D
 
-class Plotter2D(PlotterBase):
-    def __init__(self, parent=None, quickplot=False, dimension=2):
+class Plotter2DWidget(PlotterBase):
+    def __init__(self, parent=None, manager=None, quickplot=False, dimension=2):
         self.dimension = dimension
-        super(Plotter2D, self).__init__(parent, quickplot=quickplot)
+        super(Plotter2DWidget, self).__init__(parent, manager=manager, quickplot=quickplot)
 
     @property
@@ -189,2 +189,8 @@
         else:
             self.figure.canvas.draw()
+
+class Plotter2D(QtGui.QDialog, Plotter2DWidget):
+    def __init__(self, parent=None, quickplot=False, dimension=2):
+
+        QtGui.QDialog.__init__(self)
+        Plotter2DWidget.__init__(self, manager=parent, quickplot=quickplot, dimension=2)
Index: src/sas/qtgui/PlotterBase.py
===================================================================
--- src/sas/qtgui/PlotterBase.py	(revision 64f1e93f1ae889a528e0186e82bbbc473c1cc6ee)
+++ src/sas/qtgui/PlotterBase.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -17,10 +17,10 @@
 import sas.qtgui.PlotHelper as PlotHelper
 
-class PlotterBase(QtGui.QDialog):
-    def __init__(self, parent=None, quickplot=False):
+class PlotterBase(QtGui.QWidget):
+    def __init__(self, parent=None, manager=None, quickplot=False):
         super(PlotterBase, self).__init__(parent)
 
         # Required for the communicator
-        self.parent = parent
+        self.manager = manager
         self.quickplot = quickplot
 
@@ -71,5 +71,5 @@
             self.contextMenu()
             # Notify the listeners
-            self.parent.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())
+            self.manager.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())
         else:
             self.contextMenuQuickPlot()
@@ -181,5 +181,5 @@
         PlotHelper.deletePlot(PlotHelper.idOfPlot(self))
         # Notify the listeners
-        self.parent.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())
+        self.manager.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())
         event.accept()
 
Index: src/sas/qtgui/UI/MaskEditorUI.ui
===================================================================
--- src/sas/qtgui/UI/MaskEditorUI.ui	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
+++ src/sas/qtgui/UI/MaskEditorUI.ui	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MaskEditorUI</class>
+ <widget class="QDialog" name="MaskEditorUI">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>642</width>
+    <height>431</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <property name="windowIcon">
+   <iconset resource="main_resources.qrc">
+    <normaloff>:/res/ball.ico</normaloff>:/res/ball.ico</iconset>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Mask shape</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QRadioButton" name="radioButton">
+        <property name="text">
+         <string>Double Wings</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="radioButton_3">
+        <property name="text">
+         <string>Circular Disk</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="radioButton_2">
+        <property name="text">
+         <string>Rectangular Disk</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="radioButton_4">
+        <property name="text">
+         <string>Double Wing Window</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="radioButton_5">
+        <property name="text">
+         <string>Circular Window</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="radioButton_6">
+        <property name="text">
+         <string>Rectangular Window</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="0" column="1" rowspan="4">
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <property name="lineWidth">
+      <number>2</number>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>152</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="2" column="0">
+    <widget class="QPushButton" name="pushButton">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="text">
+      <string>Add</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0">
+    <widget class="QPushButton" name="pushButton_2">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="text">
+      <string>Reset</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="0">
+    <widget class="QPushButton" name="pushButton_3">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="text">
+      <string>Clear</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="main_resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
Index: src/sas/qtgui/UnitTesting/DensityCalculatorTest.py
===================================================================
--- src/sas/qtgui/UnitTesting/DensityCalculatorTest.py	(revision 31c5b583d8c577c4ed72be87d22d34ec2ed50c04)
+++ src/sas/qtgui/UnitTesting/DensityCalculatorTest.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -9,5 +9,5 @@
 
 ####### TEMP
-import LocalSetup
+import path_prepare
 #######
 
Index: src/sas/qtgui/UnitTesting/Plotter2DTest.py
===================================================================
--- src/sas/qtgui/UnitTesting/Plotter2DTest.py	(revision 64f1e93f1ae889a528e0186e82bbbc473c1cc6ee)
+++ src/sas/qtgui/UnitTesting/Plotter2DTest.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -9,5 +9,5 @@
 
 ####### TEMP
-import LocalSetup
+import path_prepare
 #######
 from sas.sasgui.guiframe.dataFitting import Data1D
Index: src/sas/qtgui/UnitTesting/PlotterTest.py
===================================================================
--- src/sas/qtgui/UnitTesting/PlotterTest.py	(revision 64f1e93f1ae889a528e0186e82bbbc473c1cc6ee)
+++ src/sas/qtgui/UnitTesting/PlotterTest.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -8,5 +8,5 @@
 
 ####### TEMP
-import LocalSetup
+import path_prepare
 #######
 from sas.sasgui.guiframe.dataFitting import Data1D
Index: src/sas/qtgui/UnitTesting/SLDCalculatorTest.py
===================================================================
--- src/sas/qtgui/UnitTesting/SLDCalculatorTest.py	(revision e4676c8d2eeeb838ff2930256562879159f87ae6)
+++ src/sas/qtgui/UnitTesting/SLDCalculatorTest.py	(revision 416fa8fe6ed121e335fb8f0e75cdd9a8ab89b80d)
@@ -9,5 +9,5 @@
 
 ####### TEMP
-import LocalSetup
+import path_prepare
 #######
 
