Index: drbl_ui/menus/Main.py
===================================================================
--- drbl_ui/menus/Main.py	(revision 20)
+++ drbl_ui/menus/Main.py	(revision 20)
@@ -0,0 +1,116 @@
+import  wx, sys, os, gettext, string, time
+import  wx.wizard as wiz
+import  wx.lib.layoutf as layoutf
+
+from config import main_functions,remote_functions
+from remoteLinuxWizard import remoteLinuxPage, setAllClientsPage,selectClientsPage,remoteLinuxFinalPage
+
+cat = gettext.GNUTranslations(open('../langs/%s.mo' % os.getenv('LANG')))
+_ = cat.gettext
+
+
+#----------------------------------------------------------------------
+class MainFrame(wx.Frame):
+    def __init__(self):
+        wx.Frame.__init__(self, parent=None, title=_('msg_nchc_title'), pos=wx.DefaultPosition, size=(400,400))
+
+        mainlist = []
+        for i in range(0, len(main_functions)):
+            mainlist.append(main_functions[i][0] + '  ' + ' --- ' + '  ' + main_functions[i][1])
+
+        self.SetAutoLayout(True)
+
+        self.panelA = wx.Panel(self)
+        #self.panelA.SetBackgroundColour(wx.RED)
+        self.panelA.SetConstraints(layoutf.Layoutf('t=t#1;l=l10#1;b%b35#1;r=r10#1',(self,)))
+
+        self.panelB = wx.Panel(self)
+        #self.panelB.SetBackgroundColour(wx.BLUE)
+        self.panelB.SetConstraints(layoutf.Layoutf('t_5#2;l=l10#1;b%b85#1;r=r10#1',(self,self.panelA)))
+
+        self.panelC = wx.Panel(self)
+        #self.panelC.SetBackgroundColour(wx.GREEN)
+        self.panelC.SetConstraints(layoutf.Layoutf('t_10#2;l=l10#1;b=b10#1;r=r10#1',(self,self.panelB)))
+
+        gif = wx.Image('../images/drbl-logo.gif', wx.BITMAP_TYPE_GIF).ConvertToBitmap()
+        image = wx.StaticBitmap(self.panelA, -1, gif, wx.DefaultPosition, (gif.GetWidth(), gif.GetHeight()))
+        #text = wx.StaticText(self.panelA, -1, _('msg_warnning_content'), wx.DefaultPosition, (375,65), style=wx.TE_MULTILINE)
+        #font = wx.Font(10, wx.SWISS, wx.BOLD, wx.NORMAL)
+        #text.SetFont(font)
+        #image.SetConstraints(layoutf.Layoutf('X%X50#1;Y=Y#1;h*;w%w50#1', (self.panelA,)))
+        image.SetConstraints(layoutf.Layoutf('X=X#1;Y=Y#1;h*;w*', (self.panelA,)))
+
+        rb = wx.RadioBox(self.panelB, -1, _('msg_choose_action'), wx.DefaultPosition, wx.DefaultSize, mainlist, 1, wx.RA_SPECIFY_COLS)
+        rb.SetConstraints(layoutf.Layoutf('X=X#1;Y=Y#1;h*;w*', (self.panelB,)))
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)
+        rb.SetSelection(0)
+
+        self.b_ok = wx.Button(self.panelC, wx.ID_OK)
+        self.b_ok.SetSize(self.b_ok.GetBestSize())
+        self.b_ok.SetConstraints(layoutf.Layoutf('X%X150#1;Y=Y#1;h*;w*', (self.panelC,)))
+        self.b_exit = wx.Button(self.panelC, wx.ID_EXIT)
+        self.b_exit.SetSize(self.b_exit.GetBestSize())
+        self.b_exit.SetConstraints(layoutf.Layoutf('X%X50#1;Y=Y#1;h*;w*', (self.panelC,)))
+
+        #self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnWizPageChanged)
+        self.Bind(wx.EVT_BUTTON, self.remoteLinuxWizard, self.b_ok)
+        self.Bind(wx.EVT_BUTTON, self.OnCloseWindow, self.b_exit)
+        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
+
+        #warnning = wx.MessageDialog(self, _('msg_warnning_content'), _('msg_warnning'), wx.OK|wx.ICON_INFORMATION)
+        #warnning.Centre()
+        #warnning.SetFocus()
+        #warnning.ShowModal()
+        #warnning.Destroy()
+
+    def EvtRadioBox(self, event):
+        if event.GetSelection() == 0:
+            self.Bind(wx.EVT_BUTTON, self.remoteLinuxWizard, self.b_ok)
+        #if event.GetSelection() == 1:
+            #self.Bind(wx.EVT_BUTTON, self.clonezillaSaveWizard, self.b_ok)
+        #if event.GetSelection() == 2:
+            #self.Bind(wx.EVT_BUTTON, self.clonezillaRestoreWizard, self.b_ok)
+        #if event.GetSelection() == 3:
+            #self.Bind(wx.EVT_BUTTON, self.TDWDemoWizard, self.b_ok)
+        #if event.GetSelection() == 4:
+            #self.Bind(wx.EVT_BUTTON, self.StreamDemoWizard, self.b_ok)
+        #if event.GetSelection() == 5:
+            #self.Bind(wx.EVT_BUTTON, self.RunWizard, self.b_ok)
+        #if event.GetSelection() == 6:
+            #self.Bind(wx.EVT_BUTTON, self.HelpWizard, self.b_ok)
+
+#----------------------------------------------------------------------
+    def OnCloseWindow(self, event):
+        self.Destroy()
+
+
+#------------------------------Wizard Modules--------------------------
+    def remoteLinuxWizard(self,evt):
+        wizard = wiz.Wizard(self, -1, _('msg_remote_linux'))
+
+        page1 = remoteLinuxPage(wizard, _('msg_choose'))
+        page2 = setAllClientsPage(wizard, _('msg_title_set_all_clients'))
+        page3 = selectClientsPage(wizard, _('msg_select_clients'))
+        page4 = remoteLinuxFinalPage(wizard, _('msg_done'))
+
+        self.page1 = page1
+        wizard.SetPageSize((500, 320))
+        #wizard.FitToPage(page1)
+
+        page1.SetNext(page2)
+        page2.SetPrev(page1)
+        page2.SetNext(page3)
+        page3.SetPrev(page2)
+        page3.SetNext(page4)
+
+        #wizard.GetPageAreaSizer().Add(page1)
+        wizard.RunWizard(page1)
+
+#------------------------------------------------------------------------
+if __name__ == '__main__':
+    app = wx.PySimpleApp()
+    frame = MainFrame()
+    frame.Centre()
+    frame.Show()
+    app.MainLoop()
+
Index: drbl_ui/menus/clonezillaSaveWizard.py
===================================================================
--- drbl_ui/menus/clonezillaSaveWizard.py	(revision 20)
+++ drbl_ui/menus/clonezillaSaveWizard.py	(revision 20)
@@ -0,0 +1,440 @@
+import  wx, sys, os, gettext, string, time
+import  wx.wizard as wiz
+from config import generate_ip_list, drbl_ocs, all_clonezilla_save_opt, clonezilla_disk_part, server_client_input, client_action_after_save, compress_mode
+
+cat = gettext.GNUTranslations(open('../langs/%s.mo' % os.getenv('LANG')))
+_ = cat.gettext
+
+global selected_clients, selected_disk_parts_save_opt, selected_clonezilla_save_opt, selected_server_client_opt
+globla selected_img_dev_name, selected_client_action, selected_compress_mode
+selected_clients = ['-nl','']
+selected_disk_parts_save_opt = ['','save']
+selected_clonezilla_save_opt = []
+selected_server_client_opt = [''] # not count
+selected_img_dev_name = ['','']
+selected_client_action = ['']
+selected_compress_mode = ['']
+
+#----------------------------------------------------------------------
+def makePageTitle(wizPg, title):
+    sizer = wx.BoxSizer(wx.VERTICAL)
+    wizPg.SetSizer(sizer)
+    title = wx.StaticText(wizPg, -1, title)
+    title.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))
+    sizer.Add(title, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
+    sizer.Add(wx.StaticLine(wizPg, -1), 0, wx.EXPAND|wx.ALL, 5)
+    return sizer
+
+#----------------------------------------------------------------------
+class checklistCtrl(wx.ListCtrl, CheckListCtrlMixin):
+    def __init__(self, parent, log):
+        wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT)
+        CheckListCtrlMixin.__init__(self)
+        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated)
+
+    def OnItemActivated(self, evt):
+        self.ToggleItem(evt.m_itemIndex)
+
+    def OnCheckItem(self, index, flag):
+        data = self.GetItemData(index)
+        arg = all_clonezilla_save_opt[data][0]
+        if flag:
+	    selected_clonezilla_save_opt.append(arg)
+        else:
+	    selected_clonezilla_save_opt.remove(arg)
+
+#-----------------------------------------------------------------------
+class setAllClientsPage(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_next = 0
+
+        wx.StaticText(self, -1, _('msg_select_all_clients_or_select_part_them'), pos=(10,60), size=(500,100), style=wx.TE_MULTILINE)
+        wx.StaticText(self, -1, _('msg_set_all_clients_des'), pos=(10,80), size=(500,100), style=wx.TE_MULTILINE)
+        ox = ['Yes', 'No']
+        self.rb = wx.RadioBox(self, -1, _('msg_set_all_clients'), (10,150), (250,75), ox, 1, wx.RA_SPECIFY_COLS|wx.NO_BORDER)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, self.rb)
+
+    def EvtRadioBox(self, event):
+        if event.GetSelection() == 0:
+            selected_clients[0] = '-nl'
+        if event.GetSelection() == 1:
+            selected_clients[0] = '-h'
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        next = self.next
+        self.fuse_next = self.fuse_next + 1
+        if self.fuse_next == 2:
+            if self.rb.GetSelection() == 0:
+                next = next.GetNext()
+        return next
+
+    def GetPrev(self):
+        self.fuse_next = 0
+        prev = self.prev
+        return prev
+
+#-----------------------------------------------------------------------
+class selectClientsPage(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+
+        self.SelectedClientsArray = []
+        self.SelectedClientsStr = ''
+        self.fuse_next = self.fuse_prev = 0
+
+        AllClientsArray = os.popen(generate_ip_list).read().split('\n')
+        AllClientsArray.remove('')
+        self.lb = wx.CheckListBox(self, -1, (10,50), (470,250), AllClientsArray)
+        self.Bind(wx.EVT_CHECKLISTBOX, self.EvtCheckListBox, self.lb)
+        self.lb.SetSelection(0)
+
+    def EvtCheckListBox(self, event):
+        index = event.GetSelection()
+        label = self.lb.GetString(index)
+        if self.lb.IsChecked(index):
+            self.SelectedClientsArray.append(label)
+        if not (self.lb.IsChecked(index)):
+            self.SelectedClientsArray.remove(label)
+        self.lb.SetSelection(index)     #so that (un)checking also selects (moves the highlight)
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        next = self.next
+        self.fuse_prev = 0
+        self.fuse_next = self.fuse_next + 1
+        if self.fuse_next == 2:
+            if selected_clients[0] == '-h':
+		if len(self.SelectedClientsArray)==0):
+                    war = wx.MessageDialog(self, 'YOU MUST CHOOSE ONE!!', 'WARNNING!!', wx.OK|wx.ICON_INFORMATION)
+                    war.ShowModal()
+                    war.Destroy()
+                    return self
+                else:
+                    for x in self.SelectedClientsArray:
+                        self.SelectedClientsStr = x + ' ' + self.SelectedClientsStr
+                    self.SelectedClientsStr = '\"' + self.SelectedClientsStr + '\"'
+                    selected_clients[1] = self.SelectedClientsStr
+        return next
+
+    def GetPrev(self):
+        prev = self.prev
+        self.fuse_next = 0
+        return prev
+
+#-----------------------------------------------------------------------
+class clonezillaSavePage1(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_prev = 0
+
+        list = []
+        for i in range(0, len(clonezilla_disk_part)):
+            list.append(clonezilla_disk_part[i][0] + '   ' + clonezilla_disk_part[i][1])
+
+        rb = wx.RadioBox(self, -1, _('msg_choose_mode'), (35, 50), (260,90), ModeList, 1, wx.RA_SPECIFY_COLS)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)
+
+    def EvtRadioBox(self, event):
+	selected_disk_parts_save_opt[0] = clonezilla_disk_part[event.GetSelection()][0]
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        self.fuse_prev = 0
+        return self.next
+
+    def GetPrev(self):
+        self.fuse_prev = self.fuse_prev + 1
+        if self.fuse_prev == 1:
+            prev = self.prev
+            if selected_clients[0] == '-nl':
+                prev = prev.GetPrev()
+        return prev
+
+#-----------------------------------------------------------------------
+class clonezillaSavePage2(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_next = 0
+
+	list = []
+	for i in range(0, len(server_client)):
+	    list.append(server_client[i][0])
+
+        rb = wx.RadioBox(self, -1, _('msg_choose_mode'), (35, 50), (260,90), list, 1, wx.RA_SPECIFY_COLS)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)
+
+    def EvtRadioBox(self, event):
+        selected_server_client_opt[0] = server_client[event.GetSelection()][0]
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+	next = self.next
+	self.fuse_next = self.fuse_next + 1
+	if self.fuse_next == 2:
+	    if selected_server_client_opt[0] == server_client[1][0]:
+		next = next.GetNext()
+        return next
+
+    def GetPrev(self):
+	self.fuse_next = 0 
+        return self.prev
+
+#----------------------------------------------------------------------
+class clonezillaSavePage3(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_next = self.fuse_prev = 0
+
+        wx.StaticText(self, -1,  _('msg_input_image_name'), (10, 160))
+        self.text_img = wx.TextCtrl(self, -1, '', (10, 180), size=(200, -1))
+        wx.StaticText(self, -1,  _('msg_input_device_name'), (10, 210))
+        self.text_dev = wx.TextCtrl(self, -1, '', (10, 230), size=(190, -1))
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        self.fuse_prev = 0
+        if self.fuse_next == 2:
+            if selected_server_client_opt[0] == server_client[1][0]:
+                selected_img_dev_name[0] = selected_img_dev_name[1] = ''
+                #print ('selected_img_dev_name[0] is %s, selected_img_dev_name[1] is %s' % (selected_img_dev_name[0], selected_img_dev_name[1]))
+            elif self.text_img.GetValue() == '' or self.text_dev.GetValue() == '':
+                warnning = wx.MessageDialog(self, 'YOU MUST ENTER SOMETHING!!', 'WARNNING', wx.OK|wx.ICON_INFORMATION)
+                warnning.ShowModal()
+                warnning.Destroy()
+                return self
+            else:
+                selected_img_dev_name[0] = self.text_img.GetValue()
+                selected_img_dev_name[1] = self.text_dev.GetValue()
+		print ('selected_img_dev_name[0] is %s, selected_img_dev_name[1] is %s' % (selected_img_dev_name[0], selected_img_dev_name[1]))
+        return self.next
+
+    def GetPrev(self):
+        self.fuse_next = 0
+        return self.prev
+
+#----------------------------------------------------------------------
+class clonezillaSavePage4(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_next = self.fuse_prev = 0
+
+        ox = [_('msg_yes'), _('msg_no')]
+        wx.StaticText(self, -1, _('msg_skip_set_advanced_extra_param'), (10,60), (470,100), wx.TE_MULTILINE)
+        rb = wx.RadioBox(self, -1, _('msg_choose_action'), (10,100), (100,50), ox, 1, wx.RA_SPECIFY_COLS|wx.NO_BORDER)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)
+        rb.SetSelection(1)
+        self.SkipExtraParam = 'no'
+
+    def EvtRadioBox(self, event):
+        if event.GetSelection() == 0:
+           self.SkipExtraParam = 'yes'
+        else:
+           self.SkipExtraParam = 'no'
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        next = self.next
+        command = command_log = ''
+        self.fuse_prev = 0
+        self.fuse_next = self.fuse_next + 1
+        if self.fuse_next == 2:
+            if self.SkipExtraParam == 'yes':
+                if  selected_server_client_opt[0] == server_client[1][0]:
+                    command = ('%s %s %s' % (drbl_ocs, selected_clients[0], selected_clients[1]))
+                else:
+                    command = ('%s %s %s %s %s' % (drbl_ocs, selected_clients[0], selected_clients[1], selected_img_dev_name[0], selected_img_dev_name[1]))
+                file = open('tmp.log','w')
+                os.system('sudo %s > tmp.log' % command)
+                time.sleep(6)
+                file.close()
+                file = open('tmp.log')
+                while True:
+                    line = file.readline()
+                    if len(line) == 0: # Zero length indicates EOF
+                        break
+                    command_log = command_log + line
+                file.close()
+                os.remove('tmp.log')
+                FinalCommand.SetLabel('%s' % command)
+                CommandLog.WriteText('%s' % command_log)
+                for i in range(0,3):
+                    next = next.GetNext()
+        return next
+
+    def GetPrev(self):
+        self.fuse_next = 0
+        self.fuse_prev = self.fuse_prev + 1
+        prev = self.prev
+        if self.fuse_prev == 1:
+            if selected_img_dev_name[0] == '' and selected_img_dev_name[1] == '':
+                prev = prev.GetPrev()
+        return prev
+
+#----------------------------------------------------------------------
+class clonezillaSavePage5(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_next = self.fuse_prev = 0
+
+        self.list = checkListCtrl(self, title)
+        sizer = wx.BoxSizer()
+        sizer.Add(self.list, 1, wx.EXPAND)
+        self.SetSizer(sizer)
+
+        self.list.InsertColumn(0, _('argument'))        #not translated
+        self.list.InsertColumn(1, _('meannings'), wx.LIST_FORMAT_LEFT)  #not translated
+
+        for key, data in selected_clonezilla_save_opt.iteritems():
+            index = self.list.InsertStringItem(sys.maxint, data[0])
+            self.list.SetStringItem(index, 1, data[1])
+            self.list.SetItemData(index, key)
+
+        self.list.SetColumnWidth(0, wx.LIST_AUTOSIZE)
+        self.list.SetColumnWidth(1, wx.LIST_AUTOSIZE)
+
+        self.list.CheckItem(0)
+        self.list.CheckItem(1)
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        self.fuse_prev = 0
+        return self.next
+
+    def GetPrev(self):
+        return self.prev
+
+#----------------------------------------------------------------------
+class clonezillaSavePage6(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+
+	list = []
+	for i in range(0, len(client_action_after_save)):
+	    list.append(client_action_after_save[i][0] + '   ' + client_action_after_save[i][1])
+        rb = wx.RadioBox(self, -1, _('msg_choose_post_mode_after_clone'), (10,100), (250,100), list, 1, wx.RA_SPECIFY_COLS|wx.NO_BORDER)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)
+        rb.SetSelection(0)
+        selected_client_action[0] = '-p choose'
+
+    def EvtRadioBox(self, event):
+        selected_client_action[0] = client_action_after_save[event.GetSelection()][0]
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        return self.next
+
+    def GetPrev(self):
+        return self.prev
+
+#----------------------------------------------------------------------
+class clonezillaSavePage7(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        self.fuse_next = 0
+
+	list = []
+	for i in range(0, len(compress_mode)):
+	    list.append(compress_mode[i][0] + '   ' + compress_mode[i][1])
+        rb = wx.RadioBox(self, -1, _('msg_choose_post_mode_after_clone'), (10,100), (300,100), list, 1, wx.RA_SPECIFY_COLS|wx.NO_BORDER)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)
+        rb.SetSelection(3)
+        selected_compress_mode = '-z3'
+
+    def EvtRadioBox(self, event):
+        selected_compress_mode[0] =  compress_mode[event.GetSelection()][0]
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        command = command_log = ''
+        self.fuse_next = self.fuse_next + 1
+        if self.fuse_next == 2:
+            if selected_clients[0] == '-nl':
+                selected_clients[0] = ''
+		command = drbl_ocs + selected_clonezilla_save_opt + selected_client_action[0] + selected_compress_mode[0] + selected_clients[0] + selected_clients[1] + selected_disk_parts_save_opt
+                #if FinalArgs[i] != '':
+                    #command = command + FinalArgs[i] + ' '
+            file = open('tmp.log','w')
+            os.system('%s > tmp.log' % command)
+            time.sleep(6)
+            file.close()
+            file = open('tmp.log')
+            while True:
+                line = file.readline()
+                if len(line) == 0: # Zero length indicates EOF
+                    break
+                command_log = command_log + line
+            file.close()
+            os.remove('tmp.log')
+            FinalCommand.SetLabel('%s' % command)
+            CommandLog.WriteText('%s' % command_log)
+        return self.next
+
+    def GetPrev(self):
+        self.fuse_next = 0
+        return self.prev
+
Index: drbl_ui/menus/remoteLinuxWizard.py
===================================================================
--- drbl_ui/menus/remoteLinuxWizard.py	(revision 20)
+++ drbl_ui/menus/remoteLinuxWizard.py	(revision 20)
@@ -0,0 +1,162 @@
+import  wx, sys, os, gettext, string, time
+import  wx.wizard as wiz
+from config import generate_ip_list, drbl_dcs, remote_functions
+
+cat = gettext.GNUTranslations(open('../langs/%s.mo' % os.getenv('LANG')))
+_ = cat.gettext
+
+global selected_clients, selected_func
+selected_clients = ['-nl','']
+selected_func = ['']
+
+#----------------------------------------------------------------------
+def makePageTitle(wizPg, title):
+    sizer = wx.BoxSizer(wx.VERTICAL)
+    wizPg.SetSizer(sizer)
+    title = wx.StaticText(wizPg, -1, title)
+    title.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))
+    sizer.Add(title, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
+    sizer.Add(wx.StaticLine(wizPg, -1), 0, wx.EXPAND|wx.ALL, 5)
+    return sizer
+
+#----------------------------------------------------------------------
+class remoteLinuxPage(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+
+	list = []
+	for i in range(0, len(remote_functions)):
+	    list.append(remote_functions[i][0] + '   ' + remote_functions[i][1])
+
+        self.rb = wx.RadioBox(self, -1, '', wx.DefaultPosition, wx.DefaultSize, list, 1, wx.RA_SPECIFY_COLS|wx.NO_BORDER)
+        self.sizer.Add(self.rb, 0, wx.ALIGN_CENTER|wx.ALL, 50)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, self.rb)
+        self.rb.SetSelection(0)
+	selected_func[0] = remote_functions[0][2]
+
+    def EvtRadioBox(self, event):
+        selected_func[0] = remote_functions[event.GetSelection()][2]
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        return self.next
+
+    def GetPrev(self):
+        return self.prev
+
+#----------------------------------------------------------------------
+class setAllClientsPage(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+	self.fuse_next = 0
+
+        wx.StaticText(self, -1, _('msg_select_all_clients_or_select_part_them'), pos=(10,60), size=(500,100), style=wx.TE_MULTILINE)
+        wx.StaticText(self, -1, _('msg_set_all_clients_des'), pos=(10,80), size=(500,100), style=wx.TE_MULTILINE)
+        ox = ['Yes', 'No']
+        self.rb = wx.RadioBox(self, -1, _('msg_set_all_clients'), (10,150), (250,75), ox, 1, wx.RA_SPECIFY_COLS|wx.NO_BORDER)
+        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, self.rb)
+
+    def EvtRadioBox(self, event):
+        if event.GetSelection() == 0:
+            selected_clients[0] = '-nl'
+        if event.GetSelection() == 1:
+            selected_clients[0] = '-h'
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+	self.prev = prev
+
+    def GetNext(self):
+        next = self.next
+	self.fuse_next = self.fuse_next + 1
+	if self.fuse_next == 2:
+            if self.rb.GetSelection() == 0:
+                Command.SetLabel('%s %s %s' % (drbl_dcs, selected_clients[0], selected_func[0]))
+                #CommandLog.WriteText(os.popen('%s %s %s' % (drbl_dcs, selected_clients[0], selected_func[0])).read())
+                next = next.GetNext()
+        return next
+
+    def GetPrev(self):
+	self.fuse_next = 0
+	prev = self.prev
+	return prev
+
+#----------------------------------------------------------------------
+class selectClientsPage(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+
+        self.SelectedClientsArray = []
+        self.SelectedClientsStr = ''
+        self.fuse_next = self.fuse_prev = 0
+
+        AllClientsArray = os.popen(generate_ip_list).read().split('\n')
+        AllClientsArray.remove('')
+        self.lb = wx.CheckListBox(self, -1, (10,50), (470,250), AllClientsArray)
+        self.Bind(wx.EVT_CHECKLISTBOX, self.EvtCheckListBox, self.lb)
+        self.lb.SetSelection(0)
+
+    def EvtCheckListBox(self, event):
+        index = event.GetSelection()
+        label = self.lb.GetString(index)
+        if self.lb.IsChecked(index):
+            self.SelectedClientsArray.append(label)
+        if not (self.lb.IsChecked(index)):
+            self.SelectedClientsArray.remove(label)
+        self.lb.SetSelection(index)	#so that (un)checking also selects (moves the highlight)
+
+    def SetNext(self, next):
+        self.next = next
+
+    def SetPrev(self, prev):
+        self.prev = prev
+
+    def GetNext(self):
+        next = self.next
+        self.fuse_prev = 0
+        self.fuse_next = self.fuse_next + 1
+        if self.fuse_next == 2:
+	    if (selected_clients[0] == '-h'):
+	        if len(self.SelectedClientsArray) == 0:
+                    war = wx.MessageDialog(self, 'YOU MUST CHOOSE ONE!!', 'WARNNING!!', wx.OK|wx.ICON_INFORMATION)
+                    war.ShowModal()
+                    war.Destroy()
+                    return self
+                else:
+                    for x in self.SelectedClientsArray:
+                        self.SelectedClientsStr = x + ' ' + self.SelectedClientsStr
+                    self.SelectedClientsStr = '\"' + self.SelectedClientsStr + '\"'
+                    selected_clients[1] = self.SelectedClientsStr
+		    CommandLog.WriteText('The commands are : %s %s %s %s' % (drbl_dcs, selected_clients[0], selected_clients[1], selected_func[0]))
+                    #CommandLog.WriteText(os.popen('%s %s %s %s' % (drbl_dcs, selected_clients[0], selected_clients[1], selected_func[0])).read())
+	return next
+
+    def GetPrev(self):
+	prev = self.prev
+	self.fuse_next = 0
+	return prev
+
+#------------------------------------------------------------------------
+class remoteLinuxFinalPage(wiz.PyWizardPage):
+    def __init__(self, parent, title):
+        wiz.PyWizardPage.__init__(self, parent)
+        self.next = self.prev = None
+        self.sizer = makePageTitle(self, title)
+        global Command, CommandLog
+
+        Command = wx.StaticText(self, -1, '', pos=(10,60), size=(150,100), style=wx.TE_MULTILINE)
+        CommandLog = wx.TextCtrl(self, -1, '', pos=(10,100), size=(480,200), style=wx.TE_MULTILINE|wx.TE_READONLY)
+
