{ /* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  requires = ( MAIN, MainUI, CommonUI, Mailer, MailPartViewers );

  publicResources = ("generic.js",
                     "UIxAppointmentEditor.js",
                     "UIxContactEditor.js",
                     "UIxMailToSelection.js",

                     "lori_32x32.png",

                     "tbtv_account_17x17.gif",
                     "tbtv_drafts_17x17.gif",
                     "tbtv_inbox_17x17.png",
                     "tbtv_junction2_17x17.gif",
                     "tbtv_junction_17x17.gif",
                     "tbtv_leaf_corner_17x17.png",
                     "tbtv_line_17x17.gif",
                     "tbtv_minus_17x17.gif",
                     "tbtv_plus_17x17.gif",
                     "tbtv_corner_17x17.gif",
                     "tbtv_corner_minus_17x17.gif",
                     "tbtv_corner_plus_17x17.gif",
                     "tbtv_sent_17x17.gif",
                     "tbtv_trash_17x17.gif",

                     "tbtb_addressbook.png",
                     "tbtb_compose.png",
                     "tbtb_delete.png",
                     "tbtb_deletedoc.png",
                     "tbtb_filetofolder.png",
                     "tbtb_forward.png",
                     "tbtb_getmail.png",
                     "tbtb_next.png",
                     "tbtb_previous.png",
                     "tbtb_print.png",
                     "tbtb_reply.png",
                     "tbtb_replyall.png",
                     "tbtb_search.png",
                     "tbtb_trash.png",

                     "tbtb_compose_addressbook_30x30.png",
                     "tbtb_compose_attach_30x30.png",
                     "tbtb_compose_clip_30x30.png",
                     "tbtb_compose_cut_30x30.png",
                     "tbtb_compose_dup_30x30.png",
                     "tbtb_compose_file_30x30.png",
                     "tbtb_compose_lock_30x30.png",
                     "tbtb_compose_quote_30x30.png",
                     "tbtb_compose_send_30x30.png",
                     "tbtb_compose_spell_30x30.png",

                     "message-mail.png",
                     "message-mail-read.png",

                     "dot.png",
                     "flag.png",
                     "icon_unread.gif",

                     "title_attachment_14x14.png",
                     "title_config.png",
                     "title_junk.png",
                     "title_read_14x14.png",
                     "title_thread.png",
                     "title_sortdown_12x12.png",
                     "title_sortup_12x12.png",
                     );

  factories = {
  };

  categories = {
    SOGoMailFolder = {
      slots = {
        toolbar = {
          protectedBy = "View";
          value = "SOGoMailFolder.toolbar";
        };
      };
      methods = {
        uids = {
          protectedBy = "<public>";
          actionClass = "UIxMailListActions";
          actionName  = "getUIDs";
        };
        headers = {
          protectedBy = "<public>";
          actionClass = "UIxMailListActions";
          actionName  = "getHeaders";
        };
        subscribe = {
          protectedBy = "<public>";
          actionClass = "UIxMailFolderActions";
          actionName = "subscribe";
        };
        unsubscribe = {
          protectedBy = "<public>";
          actionClass = "UIxMailFolderActions";
          actionName = "unsubscribe";
        };
        quotas = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "quotas";
        };
        expunge = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "expunge";
        };
        createFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "createFolder";
        };
        renameFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "renameFolder";
        };
        delete = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "delete";
        };
        batchDelete = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "batchDelete";
        };
        saveMessages = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "saveMessages";
        };
        exportFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "exportFolder";
        };
        copyMessages = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "copyMessages";
        };
        moveMessages = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "moveMessages";
        };
        setAsDraftsFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "setAsDraftsFolder";
        };
        setAsSentFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "setAsSentFolder";
        };
        setAsTrashFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "setAsTrashFolder";
        };
        userRights = {
          protectedBy = "ReadAcls";
          pageName    = "UIxMailUserRightsEditor";
        };
        unseenCount = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "unseenCount";
        };
        saveUserRights = {
          protectedBy = "Change Permissions";
          pageName    = "UIxMailUserRightsEditor";
          actionName  = "saveUserRights";
        };
      };
    };

    SOGoTrashFolder = {
      /* just a new toolbar, other things come from SOGoMailFolder */
      slots = {
        toolbar = {
          protectedBy = "View";
          value = "SOGoMailFolder.toolbar";
        };
      };
      methods = {
        emptyTrash = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "emptyTrash";
        };
      };
    };

    SOGoMailObject = {
      slots = {
        toolbar = {
          protectedBy = "View";
          value = "SOGoMailObject.toolbar";
        };
      };
      methods = {
        view = {
          protectedBy = "View";
          pageName    = "UIxMailView";
        };
        sendMDN = {
          protectedBy = "View";
          pageName    = "UIxMailView";
          actionName = "sendMDN";
        };
        viewsource = {
          protectedBy = "View";
          actionClass = "UIxMailSourceView";
          actionName = "viewSource";
        };
        popupview = {
          protectedBy = "View";
          pageName    = "UIxMailPopupView";
        };
        junk = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "junk";
        };
        edit = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName = "edit";
        };
        reply = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "reply";
        };
        replyall = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "replyToAll";
        };
        forward = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "forward";
        };
        markMessageUnflagged = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "markMessageUnflagged";
        };
        markMessageFlagged = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "markMessageFlagged";
        };
        markMessageUnread = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "markMessageUnread";
        };
        markMessageRead = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "markMessageRead";
        };
        addLabel1 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "addLabel1";
        };
        addLabel2 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "addLabel2";
        };
        addLabel3 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "addLabel3";
        };
        addLabel4 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "addLabel4";
        };
        addLabel5 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "addLabel5";
        };
        removeLabel1 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "removeLabel1";
        };
        removeLabel2 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "removeLabel2";
        };
        removeLabel3 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "removeLabel3";
        };
        removeLabel4 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "removeLabel4";
        };
        removeLabel5 = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "removeLabel5";
        };
        removeAllLabels = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName  = "removeAllLabels";
        };
      };
    };

    SOGoMailAccounts = {
      slots = {
        toolbar = {
          protectedBy = "View";
          value = "SOGoMailFolder.toolbar";
        };
      };
      methods = {
        view = {
          protectedBy = "View";
          pageName    = "UIxMailMainFrame";
        };
        compose = {
          protectedBy = "View";
          pageName    = "UIxMailMainFrame";
          actionName  = "compose";
        };
        foldersState = {
          protectedBy = "View";
          pageName    = "UIxMailMainFrame";
          actionName  = "getFoldersState";
        };
        saveDragHandleState = {
          protectedBy = "View";
          pageName    = "UIxMailMainFrame";
          actionName  = "saveDragHandleState";
        };
        saveFoldersState = {
          protectedBy = "View";
          pageName    = "UIxMailMainFrame";
          actionName  = "saveFoldersState";
        };
        saveColumnsState = {
          protectedBy = "View";
          pageName    = "UIxMailMainFrame";
          actionName  = "saveColumnsState";
        };
      };
    };

    SOGoMailAccount = {
      slots = {
        toolbar = {
          protectedBy = "View";
          value = "SOGoMailFolder.toolbar";
        };
      };
      methods = {
        compose = {
          protectedBy = "View";
          actionClass = "UIxMailAccountActions";
          actionName  = "compose";
        };
        mailboxes = {
          protectedBy = "View";
          actionClass = "UIxMailAccountActions";
          actionName = "listMailboxes";
        };
        createFolder = {
          protectedBy = "View";
          actionClass = "UIxMailFolderActions";
          actionName = "createFolder";
        };
        delegation = {
          protectedBy = "View";
          pageName = "UIxMailUserDelegationEditor";
        };
        addDelegate = {
          protectedBy = "View";
          actionClass = "UIxMailAccountActions";
          actionName = "addDelegate";
        };
        removeDelegate = {
          protectedBy = "View";
          actionClass = "UIxMailAccountActions";
          actionName = "removeDelegate";
        };
      };
    };

    SOGoDraftObject = {
      slots = {
        toolbar = {
          protectedBy = "View";
          value       = "SOGoDraftObject.toolbar";
        };
      };
      methods = {
        view = {
          protectedBy = "View";
          pageName    = "UIxMailEditor";
        };
        edit = {
          protectedBy = "View";
          pageName    = "UIxMailEditor";
        };
        save = {
          protectedBy = "View";
          pageName    = "UIxMailEditor";
          actionName  = "save";
        };
        send = {
          protectedBy = "View";
          pageName    = "UIxMailEditor";
          actionName  = "send";
        };
        delete = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName = "delete";
        };
        deleteAttachment = {
          protectedBy = "View";
          actionClass = "UIxMailActions";
          actionName = "deleteAttachment";
        };
      };
    };
  };
}

