Ejemplo n.º 1
0
 def OnTabGeneral(self):
     scrolllist = []
     canEditBase = corputil.CanEditBase(self.playerIsCEO, self.userIsCEO, eve.session.corprole & const.corpRoleDirector == const.corpRoleDirector)
     if not self.title:
         self.title = ''
     if canEditBase:
         scrolllist.append(listentry.Get('Edit', {'OnReturn': None,
          'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/CorpMemberTitleCaption'),
          'setValue': self.title,
          'name': 'general_title',
          'lines': 1,
          'maxLength': 100}))
         data = {'options': self.bases,
          'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/CorpMemberBaseCaption'),
          'cfgName': 'baseID',
          'setValue': self.baseID,
          'OnChange': self.OnComboChange,
          'name': 'baseID'}
         scrolllist.append(listentry.Get('Combo', data))
     else:
         scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/CorpMemberTitleCaption'),
          'text': self.title}))
         if self.baseID:
             baseText = localization.GetByLabel('UI/Corporations/EditMemberDialog/CorpMemberBase', station=self.baseID)
         else:
             baseText = ''
         scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/CorpMemberBaseCaption'),
          'text': baseText}))
     scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/CorpMemberJoined'),
      'text': localization.formatters.FormatDateTime(self.member.startDateTime, dateFormat='short')}))
     scrolllist.append(listentry.Get('Divider'))
     scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/Name'),
      'text': cfg.eveowners.Get(self.memberinfo.characterID).name}))
     if self.memberinfo.gender:
         scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Common/Gender/Gender'),
          'text': localization.GetByLabel('UI/Common/Gender/Male')}))
     else:
         scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Common/Gender/Gender'),
          'text': localization.GetByLabel('UI/Common/Gender/Female')}))
     race = sm.GetService('cc').GetRaceDataByID(self.memberinfo.raceID)
     scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Common/Race'),
      'text': localization.GetByMessageID(race.raceNameID)}))
     bloodline = sm.GetService('cc').GetData('bloodlines', ['bloodlineID', self.memberinfo.bloodlineID])
     scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Common/Bloodline'),
      'text': localization.GetByMessageID(bloodline.bloodlineNameID)}))
     scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/DateOfBirth'),
      'text': localization.formatters.FormatDateTime(self.memberinfo.createDateTime, dateFormat='short')}))
     if util.IsEvePlayerCharacter(self.charID):
         scrolllist.append(listentry.Get('LabelText', {'label': localization.GetByLabel('UI/Corporations/EditMemberDialog/SecurityStatus'),
          'text': localization.formatters.FormatNumeric(float(self.security), decimalPlaces=1)}))
     self.sr.scroll.Load(fixedEntryHeight=18, contentList=scrolllist)
     if canEditBase:
         self.ddxFunction = self.DDXTabGeneral
Ejemplo n.º 2
0
    def LoadColumns(self, loadingCharacterID):
        if len(self.sr.loadingCharacterID
               ) and loadingCharacterID != self.sr.loadingCharacterID[-1]:
            return
        data = self.sr.node
        tabstops = self.GetTabStops()
        viewtype = self.GetViewType()
        nMaxColumnIndex = 0
        rec = self.GetRec()
        viewRoleGroupingID = self.GetViewRoleGroupingID()
        if viewtype in (VIEW_ROLES, VIEW_GRANTABLE_ROLES):
            roleGroup = self.sr.roleGroupings[viewRoleGroupingID]
            nMaxColumnIndex = len(roleGroup.columns)
        else:
            titles = sm.GetService('corp').GetTitles()
            nMaxColumnIndex = len(titles)
        oldColumns = []
        if self.sr.columns:
            oldColumns.extend(self.sr.columns)
        self.sr.columns = [None] * (2 + nMaxColumnIndex)
        align = uiconst.RELATIVE
        height = 16
        top = 3
        maxHeight = 0
        i = -1
        previousTabPosition = 0
        relevantRoles = self.GetRelevantRoles()
        try:
            for tabstop in tabstops:
                if len(
                        self.sr.loadingCharacterID
                ) and loadingCharacterID != self.sr.loadingCharacterID[-1]:
                    return
                i += 1
                text, column, columnContents = '', None, []
                left = previousTabPosition + 4
                width = tabstop - previousTabPosition - 4
                if i == 0:
                    if not oldColumns or oldColumns[i] is None:
                        column = uicls.EveLabelMedium(
                            text=rec.name,
                            parent=self,
                            width=width,
                            left=left,
                            top=top,
                            state=uiconst.UI_DISABLED,
                            maxLines=1)
                        maxHeight = max(maxHeight, column.textheight)
                        columnContents.append(column)
                    else:
                        oldColumn = oldColumns[i]
                        column = oldColumn[0]
                        self.UpdateTextControl(column, rec.name, width, left)
                        columnContents = [column]
                        oldColumns[i] = []
                elif i == 1:
                    canEditBase = corputil.CanEditBase(rec.isCEO, rec.IAmCEO,
                                                       rec.IAmDirector)
                    canRecycle = 0
                    comboBoxes = []
                    textControls = []
                    if oldColumns and len(oldColumns) > i and oldColumns[
                            i] is not None and len(oldColumns[i]):
                        for column in oldColumns[i]:
                            if isinstance(column, uicls.ComboCore):
                                comboBoxes.append(column)
                            elif isinstance(column, uicls.LabelCore):
                                textControls.append(column)

                        comboBoxesRequired = 0
                        textControlsRequired = 0
                        if canEditBase:
                            comboBoxesRequired += 1
                        else:
                            textControlsRequired += 1
                        if comboBoxesRequired == len(
                                comboBoxes) and textControlsRequired == len(
                                    textControls):
                            canRecycle = 1
                    if not canRecycle:
                        if canEditBase:
                            s = blue.os.GetWallclockTimeNow()
                            bFound = 0
                            bases = []
                            bases.extend(self.sr.bases)
                            for locationName, locationID in self.sr.bases:
                                if locationID == rec.baseID:
                                    bFound = 1

                            if bFound == 0:
                                bases.append(('! ' + cfg.evelocations.Get(
                                    rec.baseID).locationName, rec.baseID))
                            column = uicls.Combo(label='',
                                                 parent=self,
                                                 options=bases,
                                                 name='baseID',
                                                 select=rec.baseID,
                                                 width=width - 7,
                                                 pos=(left, 3, 0, 0),
                                                 align=uiconst.TOPLEFT,
                                                 callback=self.OnComboChange)
                            self.LogInfo('uicls.Combo took %s ms.' %
                                         blue.os.TimeDiffInMs(
                                             s, blue.os.GetWallclockTimeNow()))
                            column.z = 1
                        else:
                            text = '-'
                            if rec.baseID is not None:
                                text = cfg.evelocations.Get(
                                    rec.baseID).locationName
                            column = uicls.EveLabelMedium(
                                text=text,
                                parent=self,
                                width=width,
                                left=left,
                                top=top,
                                state=uiconst.UI_DISABLED,
                                maxLines=1)
                            maxHeight = max(maxHeight, column.textheight)
                        columnContents.append(column)
                    else:
                        if canEditBase:
                            combobox = comboBoxes.pop()
                            self.UpdateComboControl(combobox, rec.baseID,
                                                    width, left)
                            columnContents.append(combobox)
                        else:
                            textControl = textControls.pop()
                            text = '-'
                            if rec.baseID is not None:
                                text = cfg.evelocations.Get(
                                    rec.baseID).locationName
                            self.UpdateTextControl(textControl, text, width,
                                                   left)
                            columnContents.append(textControl)
                        oldColumns[i] = []
                        oldColumns[i].extend(comboBoxes)
                        oldColumns[i].extend(textControls)
                else:
                    columnNumber = i - 2
                    if viewtype in (VIEW_ROLES, VIEW_GRANTABLE_ROLES):
                        roleGroup = self.sr.roleGroupings[viewRoleGroupingID]
                        column = roleGroup.columns[columnNumber]
                        columnName, subColumns = column
                        controlNumber = -1
                        controlWidth = width / len(subColumns)
                        for subColumn in subColumns:
                            controlNumber += 1
                            subColumnName, role = subColumn
                            roleID = role.roleID
                            value = relevantRoles & roleID == roleID
                            text = '[%s] %s' % (['N', 'Y'
                                                 ][value], subColumnName)
                            canEditRole = self.GetCanEditRole(roleID)
                            canRecycle = 0
                            checkBoxes = []
                            textControls = []
                            if oldColumns and len(
                                    oldColumns
                            ) > i and oldColumns[i] is not None and len(
                                    oldColumns[i]):
                                for column in oldColumns[i]:
                                    if isinstance(column, uicls.CheckboxCore):
                                        checkBoxes.append(column)
                                    elif isinstance(column, uicls.LabelCore):
                                        textControls.append(column)

                                checkBoxesRequired = 0
                                textControlsRequired = 0
                                if canEditRole:
                                    checkBoxesRequired += 1
                                else:
                                    textControlsRequired += 1
                                if checkBoxesRequired == len(
                                        checkBoxes
                                ) and textControlsRequired == len(
                                        textControls):
                                    canRecycle = 1
                            if not canRecycle:
                                if canEditRole:
                                    column = self.AddCheckBox([
                                        '%s' % i, roleID, subColumnName, value
                                    ], self, align, controlWidth, height, left,
                                                              None)
                                    self.AddMenuDelegator(column)
                                else:
                                    column = uicls.EveLabelMedium(
                                        text=text,
                                        parent=self,
                                        width=controlWidth,
                                        left=left,
                                        top=top,
                                        state=uiconst.UI_DISABLED,
                                        maxLines=1)
                                    maxHeight = max(maxHeight,
                                                    column.textheight)
                                columnContents.append(column)
                                left += controlWidth
                            else:
                                if canEditRole:
                                    checkbox = checkBoxes.pop()
                                    self.UpdateCheckBox(
                                        checkbox, [
                                            '%s' % i, roleID, subColumnName,
                                            value
                                        ], controlWidth, height, left)
                                    columnContents.append(checkbox)
                                else:
                                    textControl = textControls.pop()
                                    self.UpdateTextControl(
                                        textControl, text, controlWidth, left)
                                    columnContents.append(textControl)
                                left += controlWidth
                                oldColumns[i] = []
                                oldColumns[i].extend(checkBoxes)
                                oldColumns[i].extend(textControls)

                    else:
                        titlesByID = sm.GetService('corp').GetTitles()
                        subColumnName = ''
                        controlWidth = width
                        titleID = 1 << columnNumber
                        title = titlesByID[titleID]
                        value = relevantRoles & titleID == titleID
                        text = '[%s] %s' % (['N', 'Y'][value], subColumnName)
                        canEditRole = self.GetCanEditRole(titleID)
                        canRecycle = 0
                        checkBoxes = []
                        textControls = []
                        if oldColumns and len(oldColumns) > i and oldColumns[
                                i] is not None and len(oldColumns[i]):
                            for column in oldColumns[i]:
                                if isinstance(column, uicls.CheckboxCore):
                                    checkBoxes.append(column)
                                elif isinstance(column, uicls.LabelCore):
                                    textControls.append(column)

                            checkBoxesRequired = 0
                            textControlsRequired = 0
                            if canEditRole:
                                checkBoxesRequired += 1
                            else:
                                textControlsRequired += 1
                            if checkBoxesRequired == len(
                                    checkBoxes
                            ) and textControlsRequired == len(textControls):
                                canRecycle = 1
                        if not canRecycle:
                            if canEditRole:
                                column = self.AddCheckBox(
                                    ['%s' % i, titleID, subColumnName, value],
                                    self, align, controlWidth, height, left,
                                    None)
                            else:
                                column = uicls.EveLabelMedium(
                                    text=text,
                                    parent=self,
                                    width=controlWidth,
                                    left=left,
                                    top=top,
                                    state=uiconst.UI_DISABLED,
                                    maxLines=1)
                                maxHeight = max(maxHeight, column.textheight)
                            columnContents.append(column)
                            left += controlWidth
                        else:
                            if canEditRole:
                                checkbox = checkBoxes.pop()
                                self.UpdateCheckBox(
                                    checkbox,
                                    ['%s' % i, titleID, subColumnName, value],
                                    controlWidth, height, left)
                                columnContents.append(checkbox)
                            else:
                                textControl = textControls.pop()
                                self.UpdateTextControl(textControl, text,
                                                       controlWidth, left)
                                columnContents.append(textControl)
                            left += controlWidth
                            oldColumns[i] = []
                            oldColumns[i].extend(checkBoxes)
                            oldColumns[i].extend(textControls)
                self.sr.columns[i] = columnContents
                previousTabPosition = tabstop

        finally:
            if oldColumns:
                for column in oldColumns:
                    if column is None:
                        continue
                    for control in column:
                        if control and not control.destroyed:
                            control.Close()