7 #include "set_repprop.h"
8 #include "set_createrep.h"
9 #include "set_delete.h"
10 #include "set_release.h"
11 #include "propcache.h"
17 * DEFINITIONS ________________________________________________________________
26 } SET_REPPROP_PARAMS, *LPSET_REPPROP_PARAMS;
30 * PROTOTYPES _________________________________________________________________
34 BOOL CALLBACK Filesets_RepSites_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
35 void Filesets_RepSites_OnInitDialog (HWND hDlg, LPSET_REPPROP_PARAMS prp);
36 void Filesets_RepSites_OnSelect (HWND hDlg);
37 void Filesets_RepSites_OnDelete (HWND hDlg);
41 * ROUTINES ___________________________________________________________________
45 void Filesets_ShowReplication (HWND hDlg, LPIDENT lpiFileset, LPIDENT lpiTarget)
47 LPSET_REPPROP_INIT_PARAMS lpp = New (SET_REPPROP_INIT_PARAMS);
48 memset (lpp, 0x00, sizeof(SET_REPPROP_INIT_PARAMS));
49 lpp->lpiReq = lpiFileset;
51 StartTask (taskSET_REPPROP_INIT, g.hMain, lpp);
54 void Filesets_OnEndTask_ShowReplication (LPTASKPACKET ptp)
56 LPSET_REPPROP_INIT_PARAMS lpp = (LPSET_REPPROP_INIT_PARAMS)(ptp->lpUser);
58 TCHAR szSvrName[ cchNAME ];
59 TCHAR szAggName[ cchNAME ];
60 TCHAR szSetName[ cchNAME ];
61 lpp->lpiReq->GetServerName (szSvrName);
62 lpp->lpiReq->GetAggregateName (szAggName);
63 lpp->lpiReq->GetFilesetName (szSetName);
67 ErrorDialog (ptp->status, IDS_ERROR_REFRESH_FILESET_STATUS, TEXT("%s%s%s"), szSvrName, szAggName, szSetName);
69 else if (!lpp->lpiRW) // couldn't find RW fileset entry?
71 ErrorDialog (ptp->status, IDS_ERROR_NOT_REPLICATED, TEXT("%s"), szSetName);
76 if ((hCurrent = PropCache_Search (pcSET_REP, lpp->lpiRW)) != NULL)
82 LPSET_REPPROP_PARAMS prp = New (SET_REPPROP_PARAMS);
83 prp->lpiReq = lpp->lpiReq;
84 prp->lpiRW = lpp->lpiRW;
85 memcpy (&prp->fs, &lpp->fs, sizeof(lpp->fs));
87 LPTSTR pszTitle = FormatString (IDS_SET_REP_TITLE, TEXT("%s"), szSetName);
88 LPPROPSHEET psh = PropSheet_Create (pszTitle, FALSE);
89 psh->sh.dwFlags |= PSH_NOAPPLYNOW;
90 psh->fMadeCaption = TRUE;
92 if (PropSheet_AddTab (psh, IDS_SET_REPSITES_TAB, IDD_SET_REPSITES, (DLGPROC)Filesets_RepSites_DlgProc, (LPARAM)prp, TRUE, TRUE))
94 PropSheet_ShowModeless (psh);
103 BOOL CALLBACK Filesets_RepSites_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
105 if (HandleColumnNotify (hDlg, msg, wp, lp, &gr.viewRep))
108 if (AfsAppLib_HandleHelp (IDD_SET_REPSITES, hDlg, msg, wp, lp))
111 if (msg == WM_INITDIALOG)
112 SetWindowLong (hDlg, DWL_USER, ((LPPROPSHEETPAGE)lp)->lParam);
114 if (msg == WM_INITDIALOG_SHEET)
116 PropCache_Add (pcSET_REP, ((LPSET_REPPROP_PARAMS)lp)->lpiRW, hDlg);
118 else if (msg == WM_DESTROY_SHEET)
120 PropCache_Delete (hDlg);
124 LPSET_REPPROP_PARAMS prp;
125 if ((prp = (LPSET_REPPROP_PARAMS)GetWindowLong (hDlg, DWL_USER)) != NULL)
130 FastList_SetTextCallback (GetDlgItem (hDlg, IDC_SET_REP_LIST), GetItemText, (DWORD)&gr.viewRep);
131 Filesets_RepSites_OnInitDialog (hDlg, prp);
132 NotifyMe (WHEN_SETS_CHANGE, NULL, hDlg, 0);
136 DontNotifyMeEver (hDlg);
137 SetWindowLong (hDlg, DWL_USER, 0);
142 if ((HWND)wp == GetDlgItem (hDlg, IDC_SET_REP_LIST))
144 HWND hList = GetDlgItem (hDlg, IDC_SET_REP_LIST);
147 ptScreen.x = LOWORD(lp);
148 ptScreen.y = HIWORD(lp);
152 ScreenToClient ((HWND)wp, &ptClient);
154 if (FL_HitTestForHeaderBar (hList, ptClient))
156 HMENU hm = TaLocale_LoadMenu (MENU_COLUMNS);
157 DisplayContextMenu (hm, ptScreen, hList);
162 case WM_COLUMNS_CHANGED:
164 hList = GetDlgItem (hDlg, IDC_SET_REP_LIST);
166 lpiSel = (LPIDENT)FL_GetSelectedData (hList);
167 FL_RestoreView (hList, &gr.viewRep);
168 UpdateDisplay_Replicas (FALSE, hList, prp->lpiRW, lpiSel);
179 case IDC_SET_REPSITE_ADD:
180 Filesets_CreateReplica (prp->lpiRW);
183 case IDC_SET_REPSITE_DELETE:
184 Filesets_RepSites_OnDelete (hDlg);
187 case IDC_SET_RELEASE:
188 Filesets_Release (prp->lpiRW);
193 case WM_NOTIFY_FROM_DISPATCH:
194 UpdateDisplay_Replicas (FALSE, GetDlgItem (hDlg, IDC_SET_REP_LIST), prp->lpiRW, prp->lpiReq);
195 Delete ((LPNOTIFYSTRUCT)lp);
199 switch (((LPNMHDR)lp)->code)
201 case FLN_COLUMNRESIZE:
202 FL_StoreView (GetDlgItem (hDlg, IDC_SET_REP_LIST), &gr.viewRep);
206 Filesets_RepSites_OnSelect (hDlg);
218 static LONG procRepSitesList = 0;
220 LRESULT CALLBACK Filesets_RepSites_SubclassListProc (HWND hList, UINT msg, WPARAM wp, LPARAM lp)
224 if (procRepSitesList == 0)
225 rc = DefWindowProc (hList, msg, wp, lp);
227 rc = CallWindowProc ((WNDPROC)procRepSitesList, hList, msg, wp, lp);
232 if (procRepSitesList != 0)
233 SetWindowLong (hList, GWL_WNDPROC, procRepSitesList);
240 ShowColumnsDialog (GetParent (hList), &gr.viewRep);
250 void Filesets_RepSites_OnInitDialog (HWND hDlg, LPSET_REPPROP_PARAMS prp)
252 HWND hList = GetDlgItem (hDlg, IDC_SET_REP_LIST);
253 if (procRepSitesList == 0)
254 procRepSitesList = GetWindowLong (hList, GWL_WNDPROC);
255 SetWindowLong (hList, GWL_WNDPROC, (LONG)Filesets_RepSites_SubclassListProc);
257 TCHAR szServer[ cchNAME ];
258 TCHAR szFileset[ cchNAME ];
259 TCHAR szAggregate[ cchNAME ];
260 prp->lpiRW->GetServerName (szServer);
261 prp->lpiRW->GetAggregateName (szAggregate);
262 prp->lpiRW->GetFilesetName (szFileset);
263 SetDlgItemText (hDlg, IDC_SET_SERVER, szServer);
264 SetDlgItemText (hDlg, IDC_SET_AGGREGATE, szAggregate);
265 SetDlgItemText (hDlg, IDC_SET_NAME, szFileset);
267 FL_RestoreView (GetDlgItem (hDlg, IDC_SET_REP_LIST), &gr.viewRep);
268 UpdateDisplay_Replicas (FALSE, GetDlgItem (hDlg, IDC_SET_REP_LIST), prp->lpiRW, prp->lpiReq);
272 void Filesets_RepSites_OnSelect (HWND hDlg)
274 LPIDENT lpiSelected = (LPIDENT)FL_GetSelectedData (GetDlgItem (hDlg, IDC_SET_REP_LIST));
275 EnableWindow (GetDlgItem (hDlg, IDC_SET_REPSITE_DELETE), (lpiSelected != NULL));
279 void Filesets_RepSites_OnDelete (HWND hDlg)
281 LPIDENT lpiSelected = (LPIDENT)FL_GetSelectedData (GetDlgItem (hDlg, IDC_SET_REP_LIST));
283 Filesets_Delete (lpiSelected);