From 4a3383690c8b284c2d0c6a471444eaa5a8bc4b01 Mon Sep 17 00:00:00 2001
From: luca Digitare nel campo 'Cartella programma' il percorso completo della cartella dove si desidera installare il programma. ");
- strBody += wxT("Il percorso di default (consigliato) e' C:\\Campo Le cartella del programma e dei dati dovranno essere condivise in modalita' lettura/scrittura agli utenti di sistema e di rete che utilizzeranno il software Campo. ");
+ strBody += wxT("Il percorso consigliato e' C:\\Campo Digitare nel campo 'Cartella dati' il percorso completo della cartella dove si desidera installare l'area dati. ");
+ strBody += wxT("Il percorso consigliato e' C:\\Campo\\dati Le cartelle del programma e dei dati dovranno essere condivise in modalita' lettura/scrittura agli utenti di sistema e di rete che utilizzeranno il software Campo. ");
strBody += wxT("In mancanza di tale condivisione nessun client potra' accedere al server! Gestore autorizzazioni: e' il software che permette di gestire una chiave di protezione hardware multiutenza condivisa in rete. ");
strBody += wxT("Installando tale software e' necessario specificare il computer su cui e' montata la chiave di protezione multiutenza.");
@@ -994,7 +1022,7 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
//prompt
AddLabel(gbsSizer, "Cartella dati", 1, 0);
//campo testo
- strPath += "\\dati";
+ strPath += "/dati";
wxTextCtrl* tcDataPath = new wxTextCtrl(this, 703, strPath, wxDefaultPosition, wxSize(320,-1));
gbsSizer->Add(tcDataPath, wxGBPosition(1, 1));
//bottone 'sfoglia'
@@ -1027,15 +1055,104 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
class CampoWizardPage8 : public CampoWizardPage
{
protected:
+ DECLARE_EVENT_TABLE();
+ virtual bool ForwardValidate();
+ void OnDirPick(wxCommandEvent& e);
+ void OnSrvClick(wxCommandEvent& e);
+
public:
CampoWizardPage8(wxWizard* parent);
};
+BEGIN_EVENT_TABLE(CampoWizardPage8, CampoWizardPage)
+ EVT_BUTTON(802, OnDirPick)
+ EVT_BUTTON(804, OnDirPick)
+ EVT_BUTTON(806, OnDirPick)
+ EVT_CHECKBOX(807, OnSrvClick)
+ EVT_CHECKBOX(809, OnSrvClick)
+END_EVENT_TABLE()
+
+void CampoWizardPage8::OnDirPick(wxCommandEvent& e)
+{
+ const wxWindowID wiTargetField = e.GetId() - 1;
+ wxString strPath = Get(wiTargetField);
+ wxDirDialog dlg(this, wxDirSelectorPromptStr, strPath,
+ wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST);
+ if (dlg.ShowModal() == wxID_OK)
+ {
+ strPath = dlg.GetPath();
+ Set(wiTargetField, strPath);
+ }
+}
+
+void CampoWizardPage8::OnSrvClick(wxCommandEvent& e)
+{
+ wxWindow* pWnd = FindWindowById(e.GetId() + 1);
+ if (pWnd)
+ pWnd->Enable(e.IsChecked());
+}
+
+bool CampoWizardPage8::ForwardValidate()
+{
+ //controllo esistenza programmi sul server
+ const wxString strPrgPath = Get(803);
+ wxDir dirPrgPath(strPrgPath);
+ bool ok_prg = false;
+ //deve esistere non vuota, e contenere almeno campo.ini,install.ini,campo.aut,ba0.exe
+ if (dirPrgPath.Exists(strPrgPath) && dirPrgPath.HasFiles() && dirPrgPath.HasSubDirs())
+ {
+ wxFileName fnFileToCheck(strPrgPath, "campo");
+ fnFileToCheck.SetExt("ini");
+ if (fnFileToCheck.FileExists())
+ {
+ fnFileToCheck.SetName("install");
+ fnFileToCheck.SetExt("ini");
+ if (fnFileToCheck.FileExists())
+ {
+ fnFileToCheck.SetName("campo");
+ fnFileToCheck.SetExt("aut");
+ if (fnFileToCheck.FileExists())
+ {
+ fnFileToCheck.SetName("ba0");
+ fnFileToCheck.SetExt("exe");
+ if (fnFileToCheck.FileExists())
+ {
+ ok_prg = true;
+ }
+ }
+ }
+ }
+ }
+ if (!ok_prg)
+ return ErrorBox("La cartella selezionata come origine dei programmi NON e' valida!");
+
+ //controllo esistenza dati sul server
+ wxString strDataPath = Get(805);
+ wxDir dirDataPath(strDataPath);
+ bool ok_data = false;
+ //deve esistere non vuota, e contenere la sottodirectory "com" con i dati comuni
+ if (dirDataPath.Exists(strDataPath) && dirDataPath.HasSubDirs("com"))
+ {
+ strDataPath << "/com";
+ wxFileName fnFileToCheck(strDataPath, "tabcom");
+ fnFileToCheck.SetExt("dbf");
+ if (fnFileToCheck.FileExists())
+ ok_data = true;
+ }
+ if (!ok_data)
+ return ErrorBox("La cartella selezionata come area dati NON e' valida!");
+ return true;
+}
+
CampoWizardPage8::CampoWizardPage8(wxWizard* parent) : CampoWizardPage(parent)
{
wxString strTitle = wxT("Installazione di tipo Client");
wxString strBody = wxT(" Digitare nel campo 'Cartella locale programma' il percorso completo della cartella dove si desidera installare il programma. ");
- strBody += wxT("Il percorso di default (consigliato) e' C:\\Campo
Digitare nel campo 'Cartella remota origine programmi' il percorso completo della cartella di rete dove sono i files origine del programma. "); + strBody += wxT("E' la cartella di programmi condivisa dal server precedentemente installato.
"); + strBody += wxT("Digitare nel campo 'Cartella remota dati da utilizzare' il percorso completo della cartella di rete dove sono i dati. "); + strBody += wxT("E' la cartella dei dati condivisa dal server precedentemente installato.
"); SetHTMLText(strTitle, strBody); //griglia per sistemare i campi @@ -1071,13 +1188,33 @@ CampoWizardPage8::CampoWizardPage8(wxWizard* parent) : CampoWizardPage(parent) //prompt AddLabel(gbsSizer, "Cartella remota dati da utilizzare", 2, 0); //campo testo - strPath += "\\dati"; + strPath += "/dati"; wxTextCtrl* tcDataPath = new wxTextCtrl(this, 805, strPath, wxDefaultPosition, wxSize(320,-1)); gbsSizer->Add(tcDataPath, wxGBPosition(2, 1)); //bottone 'sfoglia' wxButton* bDataButton = new wxButton(this, 806, wxT("Sfoglia"), wxDefaultPosition, wxSize(48, -1)); gbsSizer->Add(bDataButton, wxGBPosition(2, 2)); + //quarta riga della griglia + //check usa authoriz + wxCheckBox* chAuthoriz = new wxCheckBox(this, 807, wxT("Utilizza il gestore delle autorizzazioni")); + chAuthoriz->SetValue(false); + gbsSizer->Add(chAuthoriz, wxGBPosition(3, 1)); + //quale e' il server authoriz + wxTextCtrl* tcAuthoriz = new wxTextCtrl(this, 808, "nomeserverautorizzazioni", wxDefaultPosition, wxSize(96,-1)); + tcAuthoriz->Disable(); + gbsSizer->Add(tcAuthoriz, wxGBPosition(3, 2)); + + //quarta riga della griglia + //check usa diction + wxCheckBox* chDictionary = new wxCheckBox(this, 809, wxT("Utilizza il gestore dei dizionari")); + chDictionary->SetValue(false); + gbsSizer->Add(chDictionary, wxGBPosition(4, 1)); + //quale e' il server diction + wxTextCtrl* tcDiction = new wxTextCtrl(this, 810, "nomeserverdizionario", wxDefaultPosition, wxSize(96,-1)); + tcDiction->Disable(); + gbsSizer->Add(tcDiction, wxGBPosition(4, 2)); + } /**********************************************************************************************************/ //pagina con la selezione di destinazione @@ -1129,6 +1266,16 @@ CampoWizardPage10::CampoWizardPage10(wxWizard* parent) : CampoWizardPage(parent) // CampoWizard /////////////////////////////////////////////////////////// //la dichiarazione della classe e' prima in quanto alcuni suoi metodi sono usati da altre classi scritte piu' su +BEGIN_EVENT_TABLE(CampoWizard, wxWizard) + EVT_BUTTON(wxID_FORWARD, CampoWizard::OnNext) +END_EVENT_TABLE() + +void CampoWizard::OnNext(wxCommandEvent& e) +{ + CampoWizardPage* p = (CampoWizardPage*)GetCurrentPage(); + if (p->ForwardValidate()) + e.Skip(); +} bool CampoWizard::Run() { return RunWizard(Page(0)); }