Exemplo n.º 1
0
/*-------------------------------------------------------------------------*/
static void qmonUsersetFillConf(
Widget w,
lListElem *ep 
) {
   lList *ul;

   DENTER(GUI_LAYER, "qmonUsersetFillConf");
   
   if (!ep) {
      /*
      ** clear the userset_user_list
      */
      XtVaSetValues( userset_user_list, 
                  XmNitems, NULL,
                  XmNitemCount, 0,
                  NULL);
      DEXIT;
      return;
   }

   userset_type_state = (int)lGetUlong(ep, US_type);
   XmtChooserSetState(userset_type, userset_type_state, False);
   ul = lGetList(ep, US_entries);
   lPSortList(ul, "%I+", UE_name);
   UpdateXmListFromCull(userset_user_list, XmFONTLIST_DEFAULT_TAG, ul, UE_name);

   DEXIT;
}
Exemplo n.º 2
0
/*-------------------------------------------------------------------------*/
static void updateUsersetList(void)
{
   lList *al;
   XmString *selectedItems;
   Cardinal selectedItemCount;
   Cardinal itemCount;
   
   DENTER(GUI_LAYER, "updateUsersetList");

   al = qmonMirrorList(SGE_US_LIST);
   lPSortList(al, "%I+", US_name);
   UpdateXmListFromCull(userset_names, XmFONTLIST_DEFAULT_TAG, al, 
                           US_name);
   XtVaGetValues( userset_names,
                  XmNselectedItems, &selectedItems,
                  XmNselectedItemCount, &selectedItemCount,
                  XmNitemCount, &itemCount,
                  NULL);

   if (selectedItemCount)
      XmListSelectItem(userset_names, selectedItems[0], True);
   else if (itemCount)
      XmListSelectPos(userset_names, 1, True);

   DEXIT;
}
Exemplo n.º 3
0
/*-------------------------------------------------------------------------*/
void updateCkptList(void)
{
    lList *cl;

    DENTER(GUI_LAYER, "updateCkptList");

    cl = qmonMirrorList(SGE_CK_LIST);
    lPSortList(cl, "%I+", CK_name);
    UpdateXmListFromCull(ckpt_names, XmFONTLIST_DEFAULT_TAG, cl, CK_name);

    DEXIT;
}
Exemplo n.º 4
0
/*-------------------------------------------------------------------------*/
static void qmonManopFillList(void)
{
   lList *lp, *cl;
   lListElem *ep;
   
   DENTER(GUI_LAYER, "qmonManopFillList");

   /* manager list */
   lp = qmonMirrorList(SGE_UM_LIST);
   lPSortList(lp, "%I+", UM_name);
   UpdateXmListFromCull(manager_list, XmFONTLIST_DEFAULT_TAG, lp, UM_name);
   
   /* operator list */
   lp = qmonMirrorList(SGE_UO_LIST);
   lPSortList(lp, "%I+", UO_name);
   UpdateXmListFromCull(operator_list, XmFONTLIST_DEFAULT_TAG, lp, UO_name);

   /* userset list */
   updateUsersetList();

   /* user list */
   lp = qmonMirrorList(SGE_UU_LIST);
   lPSortList(lp, "%I+", UU_name);
   /*
   ** set UU_default_project to NONE
   */
   cl = lCopyList("cl", lp);
   for_each (ep, cl) {
      if (ep && !lGetString(ep, UU_default_project)) 
         lSetString(ep, UU_default_project, "NONE");
   }
   qmonSetNxN(user_matrix, cl, 3, UU_name, UU_default_project, UU_delete_time);
   lFreeList(&cl);

   DEXIT;
}
Exemplo n.º 5
0
/*-------------------------------------------------------------------------*/
void updateQueueList(void)
{
   lList *qlp = NULL;
   lList *hl = NULL;
   lList *rl = NULL;
   lList *cl = NULL;
   lEnumeration *whatall = NULL;
   lCondition *where = NULL;
   static Boolean filter_on = False;
   
   DENTER(GUI_LAYER, "updateQueueList");

   cl = qmonMirrorList(SGE_CE_LIST);
   /*
   ** copy of host list
   */
   hl = lCopyList("HL", qmonMirrorList(SGE_EH_LIST));

   /* 
   **
   ** select a subset of the whole queue list (->where) 
   ** and get the list sorted 
   **
   */
#ifdef FIXME   
   where = lWhere("%T(%I!=%s)", QU_Type, QU_qname, QU_TEMPLATE);
   whatall = lWhat("%T(ALL)", QU_Type);
#else   
   whatall = lWhat("%T(ALL)", CQ_Type);
#endif  
   qlp = lSelect("SQL", qmonMirrorList(SGE_CQ_LIST), where, whatall); 
   lFreeWhere(&where);
   lFreeWhat(&whatall);

#ifdef FIXME
   /*
   ** additional filtering
   */
   rl = qmonQFilterRequest();
   if (rl) {
      if (!filter_on) {
         setButtonLabel(queue_customize, "@{Customize +}");
         filter_on = True;
      }
      match_queue(&qlp, rl, cl, hl);
   }  
   else {
      if (filter_on) {
         setButtonLabel(queue_customize, "@{Customize}");
         filter_on = False;
      }
   }
   
   /*
   ** sort the queues according to sequence number and alphabetically
   */
   lPSortList(qlp, "%I+ %I+ %I+", QU_seq_no, QU_qhostname, QU_qname);
#endif
   /*
   ** save the queue in hash table
   */
   qmonQueueHash(qlp, hl);

   qmonQueueSetPos(qlp);

   /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
   ** qlp must not be freed it is referenced in qmonHashQueue
   ** and freed there
   */
   
   DEXIT;
}
Exemplo n.º 6
0
/*-------------------------------------------------------------------------*/
static void qmonUserAskForProject(Widget w, XtPointer cld, XtPointer cad)
{
   XbaeMatrixLabelActivateCallbackStruct *cbs = 
                            (XbaeMatrixLabelActivateCallbackStruct *) cad;
   Boolean status = False;
   lList *pl = NULL;
   lListElem *cep = NULL;
   int n, i;
   StringConst *strs = NULL;
   static char buf[BUFSIZ];
   lList *lp = NULL;
   lList *alp = NULL;
   lListElem *ep;
   static lEnumeration *what = NULL;
   
   DENTER(GUI_LAYER, "qmonUserAskForProject");

   if (!what) {
      what = lWhat("%T(%I %I)", UU_Type, UU_name, UU_default_project);
   }

   if (cbs->column != 1) {
        DEXIT;
        return;
   }
   
   qmonMirrorMultiAnswer(PROJECT_T, &alp);
   if (alp) {
      qmonMessageBox(w, alp, 0);
      lFreeList(&alp);
      DEXIT;
      return;
   }
   pl = qmonMirrorList(SGE_PR_LIST);
   lPSortList(pl, "%I+", PR_name);
   n = lGetNumberOfElem(pl);
   if (n>0) {
      strs = (StringConst*)XtMalloc(sizeof(String)*(n+1)); 
      strs[0] = "NONE";
      for (cep=lFirst(pl), i=0; i<n; cep=lNext(cep), i++) {
        /*
        ** we get only references don't free, the strings
        */
        strs[i+1] = lGetString(cep, PR_name);
      }
    
      strcpy(buf, "");
      /* FIX_CONST_GUI */
      status = XmtAskForItem(w, NULL, "@{Select a project}",
                        "@{Available projects}", (String*)strs, n+1,
                        False, buf, BUFSIZ, NULL); 
      
      if (status) {
         int rows, i;
         rows = XbaeMatrixNumRows(user_matrix);
         for (i=0; i<rows; i++) {
            String s = XbaeMatrixGetCell(user_matrix, i, 0);
            if (XbaeMatrixIsRowSelected(user_matrix, i) && s &&
                    strcmp(s, "")) {
               ep = lAddElemStr(&lp, UU_name, s, UU_Type); 
               lSetString(ep, UU_default_project, buf);
            }
         } 
         XbaeMatrixDeselectAll(user_matrix);

         /*
         ** send to master as modify request
         */
         for_each (ep, lp) {
            if (ep && lGetString(ep, UU_default_project) && 
                !strcasecmp(lGetString(ep, UU_default_project), "NONE")) 
               lSetString(ep, UU_default_project, NULL);
         }
         if (lp) {
             alp = qmonModList(SGE_UU_LIST, 
                               qmonMirrorListRef(SGE_UU_LIST),
                               UU_name, &lp, NULL, what);
             qmonMessageBox(w, alp, 0);
             updateManopList();

             lFreeList(&alp);
             lFreeList(&lp);
         }
      }
      /*
      ** don't free referenced strings, they are in the pl list
      */
      XtFree((char*)strs);
   }