usr/src/cmd/gui-install/src/timezone.py
author Niall Power <niall.power@oracle.com>
Tue, 03 Jul 2012 19:00:47 +0100
changeset 1744 0e0023aa7b39
parent 1408 92e8da409b8b
child 1745 ef7885eccc1c
permissions -rw-r--r--
7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     1
#!/usr/bin/python
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     2
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     3
# CDDL HEADER START
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     4
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     8
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    12
# and limitations under the License.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    13
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    19
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    20
# CDDL HEADER END
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    21
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    22
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    23
#
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    24
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    25
'''
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    26
Timezone custom widget
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    27
'''
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    28
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    29
import pygtk
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    30
pygtk.require('2.0')
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    31
1408
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
    32
import logging
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
    33
import os
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
    34
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    35
import gobject
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    36
import gtk
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    37
import pango
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    38
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    39
from solaris_install.gui_install.gui_install_common import modal_dialog, \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    40
    COLOR_WHITE, GLADE_DIR, GLADE_ERROR_MSG
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    41
from solaris_install.gui_install.map import Map, TZTimezone
1408
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
    42
from solaris_install.logger import INSTALL_LOGGER_NAME
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
    43
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
    44
LOGGER = None
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    45
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    46
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    47
class Timezone(gtk.VBox):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    48
    SELECT_LABEL = _("- Select -")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    49
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    50
    def on_query_tooltip(self, widget, x, y, keyboard_mode, tooltip,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    51
        user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    52
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    53
        (tz, distance) = self.map.get_closest_timezone(x, y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    54
        if tz is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    55
            if tz.tz_oname is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    56
                contains_slash = False
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    57
                words = tz.tz_oname.split("/")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    58
                if len(words) > 1:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    59
                    contains_slash = True
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    60
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    61
                if contains_slash and len(words[-1]):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    62
                    tooltip.set_text(_(words[-1]))
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    63
                    return True
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    64
                elif not contains_slash:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    65
                    tooltip.set_text(_(tz.tz_oname))
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    66
                    return True
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    67
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    68
            if tz.tz_name is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    69
                words = tz.tz_name.split("/")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    70
                tooltip.set_text(_(words[-1]))
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    71
                return True
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    72
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    73
        return False
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    74
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    75
    def on_all_timezones_added(self):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    76
        continents = self.map.world.continents
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    77
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    78
        (sys_ctnt_index, sys_ctry_index, sys_tz_index) = self.get_current_tz()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    79
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    80
        if sys_ctnt_index == -1 or sys_ctry_index == -1 or sys_tz_index == -1:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    81
            sys_ctnt_index = 0
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    82
            sys_ctry_index = 0
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    83
            sys_tz_index = 0
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    84
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    85
        tree_iter = self.ctnt_store.append()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    86
        self.ctnt_store.set(tree_iter, 0, None, 1, Timezone.SELECT_LABEL)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    87
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    88
        for continent in continents:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    89
            text = continent.name
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    90
            tree_iter = self.ctnt_store.append()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    91
            self.ctnt_store.set(tree_iter, 0, continent, 1, _(text))
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    92
            path = self.ctnt_store.get_path(tree_iter)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    93
            continent.ref = gtk.TreeRowReference(self.ctnt_store, path)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    94
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    95
        self.ctnt_combo.set_active(sys_ctnt_index + 1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    96
        self.ctry_combo.set_active(sys_ctry_index + 1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    97
        self.tz_combo.set_active(sys_tz_index + 1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    98
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
    99
    def on_region_changed(self, ctnt_combo, user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   100
        ctry_combo = self.ctry_combo
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   101
        continents = self.map.world.continents
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   102
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   103
        # clear country list store
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   104
        ctry_store = ctry_combo.get_model()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   105
        ctry_store.clear()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   106
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   107
        # "- 1" for "- Select -" label
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   108
        i = ctnt_combo.get_active() - 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   109
        if i >= 0 and i < len(continents):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   110
            tree_iter = ctry_store.append()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   111
            ctry_store.set(tree_iter, 0, None, 1, Timezone.SELECT_LABEL)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   112
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   113
            for country in continents[i].countries:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   114
                tree_iter = ctry_store.append()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   115
                ctry_store.set(tree_iter, 0, country, 1, _(country.name))
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   116
                path = ctry_store.get_path(tree_iter)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   117
                country.ref = gtk.TreeRowReference(ctry_store, path)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   118
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   119
        # If continent only has 1 country, make that the active one.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   120
        # Otherwise activate the "select" item
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   121
        if i >= 0 and len(continents[i].countries) == 1:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   122
            ctry_combo.set_active(1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   123
        else:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   124
            ctry_combo.set_active(0)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   125
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   126
    def on_country_changed(self, ctry_combo, user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   127
        ctnt_combo = self.ctnt_combo
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   128
        tz_combo = self.tz_combo
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   129
        continents = self.map.world.continents
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   130
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   131
        # clear timezone list store
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   132
        tz_store = tz_combo.get_model()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   133
        tz_store.clear()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   134
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   135
        # "- 1" for "- Select -" labels
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   136
        i = ctnt_combo.get_active() - 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   137
        j = ctry_combo.get_active() - 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   138
        if i >= 0 and i < len(continents) and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   139
            j >= 0 and j < len(continents[i].countries):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   140
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   141
            tree_iter = tz_store.append()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   142
            tz_store.set(tree_iter, 0, None, 1, Timezone.SELECT_LABEL)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   143
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   144
            for timezone in continents[i].countries[j].timezones:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   145
                tree_iter = tz_store.append()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   146
                tz_store.set(tree_iter, 0, timezone, 1, _(timezone.name))
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   147
                path = tz_store.get_path(tree_iter)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   148
                timezone.ref = gtk.TreeRowReference(tz_store, path)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   149
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   150
        # If country only has 1 timezone, make that the active one.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   151
        # Otherwise activate the "select" item
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   152
        if i >= 0 and j >= 0 and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   153
            len(continents[i].countries[j].timezones) == 1:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   154
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   155
            tz_combo.set_active(1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   156
        else:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   157
            tz_combo.set_active(0)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   158
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   159
    def on_timezone_changed(self, widget, user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   160
        model = self.tz_store
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   161
        tree_iter = widget.get_active_iter()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   162
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   163
        if tree_iter is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   164
            tz = model.get_value(tree_iter, 0)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   165
            if tz is not None and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   166
                self.map is not None and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   167
                self.map.flags() & gtk.REALIZED:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   168
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   169
                self.map.set_timezone_selected(tz)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   170
                rect = gtk.gdk.Rectangle(0, 0,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   171
                    self.map.allocation.width, self.map.allocation.height)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   172
                self.map.window.invalidate_rect(rect, False)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   173
1408
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   174
                LOGGER.debug("Changing TZ to %s" % tz.tz_name)
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   175
                # Save new TZ to the environment so that future calls
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   176
                # to datetime.now() & Co will reflect the new timezone
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   177
                os.environ['TZ'] = tz.tz_name
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   178
                # Call the TimeZoneScreen to update the date/time for new TZ
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   179
                self.parent_screen.set_current_date_and_time()
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   180
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   181
    def __init__(self, builder, parent_screen):
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   182
        global LOGGER
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   183
        LOGGER = logging.getLogger(INSTALL_LOGGER_NAME)
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   184
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   185
        gtk.VBox.__init__(self)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   186
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   187
        self.builder = builder
1408
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   188
        # Save a reference to the TimeZoneScreen that contains this
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   189
        # Timezone object, so we can call its set_current_date_and_time()
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   190
        # when a different time zone is selected.
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   191
        self.parent_screen = parent_screen
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   192
1744
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   193
        # the AM/PM/24 hour time combo box i18n is a bit quirky
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   194
        ampmcombobox = self.builder.get_object("ampmcombobox")
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   195
        if ampmcombobox:
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   196
            # make a list of translated labels excluding trailing '\n'
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   197
            labels = _("AM\nPM\n24 Hour\n").split('\n')[:-1]
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   198
            # get the store and iterate over the labels replacing them with
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   199
            # the translated labels
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   200
            store = ampmcombobox.get_model()
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   201
            if store:
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   202
                store_iter = store.get_iter('0')
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   203
                for label in labels:
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   204
                    if store_iter:
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   205
                        store.set(store_iter, 0, label)
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   206
                        store_iter = store.iter_next(store_iter)
0e0023aa7b39 7163453 part of disk screen stays in English in both fdisk mode and GPT mode
Niall Power <niall.power@oracle.com>
parents: 1408
diff changeset
   207
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   208
        self.map = Map()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   209
        self.map.load_timezones()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   210
        self.map.modify_bg(gtk.STATE_NORMAL, COLOR_WHITE)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   211
        self.map.show()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   212
        self.pack_start(self.map, expand=False, fill=False, padding=0)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   213
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   214
        gobject.GObject.connect(self, "button-press-event",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   215
            self.on_button_pressed, self)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   216
        gobject.GObject.connect(self, "button-release-event",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   217
            self.on_button_released, self)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   218
        gobject.GObject.connect(self, "motion-notify-event",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   219
            self.on_motion_notify)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   220
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   221
        # "has-tooltip" property is being set on Timezone, rather
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   222
        # than Map, so that event co-ords are consistent with
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   223
        # "motion-notify-event" co-ords.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   224
        gobject.GObject.set_property(self, "has-tooltip", True)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   225
        settings = self.get_settings()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   226
        gobject.GObject.set_property(settings, "gtk-tooltip-timeout", 50)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   227
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   228
        gobject.GObject.connect(self, "query-tooltip",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   229
            self.on_query_tooltip)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   230
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   231
        self.ctnt_store = None
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   232
        self.ctry_store = None
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   233
        self.tz_store = None
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   234
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   235
        self.combo = self.builder.get_object("timezonetoplevel")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   236
        self.ctnt_combo = self.builder.get_object("regioncombobox")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   237
        self.ctry_combo = self.builder.get_object("countrycombobox")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   238
        self.tz_combo = self.builder.get_object("timezonecombobox")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   239
        self.ctnt_label = self.builder.get_object("regionlabel")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   240
        self.ctry_label = self.builder.get_object("countrylabel")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   241
        self.tz_label = self.builder.get_object("timezonelabel")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   242
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   243
        if None in [self.combo, self.ctnt_combo, self.ctry_combo,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   244
            self.tz_combo, self.ctnt_label, self.ctry_label, self.tz_label]:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   245
            modal_dialog(_("Internal error"), GLADE_ERROR_MSG)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   246
            raise RuntimeError(GLADE_ERROR_MSG)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   247
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   248
        self.combo_init()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   249
        self.on_all_timezones_added()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   250
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   251
        self.click_time = None
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   252
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   253
    def do_unrealize(self):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   254
        self.window.destroy()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   255
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   256
    def on_button_pressed(self, widget, event, user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   257
        ctnt_model = self.ctnt_store
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   258
        ctry_model = self.ctry_store
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   259
        tz_model = self.tz_store
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   260
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   261
        # save the time
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   262
        self.click_time = event.time
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   263
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   264
        if event.button == 1:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   265
            self.map.set_offset(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   266
            (tz, distance) = self.map.get_closest_timezone(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   267
            if tz is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   268
                # The timezone point is seletced
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   269
                #  in the "changed" callback of the combo box.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   270
                continent = tz.country.continent
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   271
                path = continent.ref.get_path()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   272
                tree_iter = ctnt_model.get_iter(path)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   273
                if tree_iter is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   274
                    self.ctnt_combo.set_active_iter(tree_iter)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   275
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   276
                country = tz.country
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   277
                path = country.ref.get_path()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   278
                tree_iter = ctry_model.get_iter(path)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   279
                if tree_iter is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   280
                    self.ctry_combo.set_active_iter(tree_iter)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   281
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   282
                path = tz.ref.get_path()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   283
                tree_iter = tz_model.get_iter(path)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   284
                if tree_iter is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   285
                    self.tz_combo.set_active_iter(tree_iter)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   286
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   287
        (width, height) = widget.size_request()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   288
        widget.requisition.width = width
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   289
        widget.requisition.height = height
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   290
        widget.queue_resize()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   291
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   292
        return False
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   293
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   294
    def on_button_released(self, widget, event, user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   295
        interval = event.time - self.click_time
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   296
        if interval <= 0 or interval >= 200:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   297
            return False
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   298
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   299
        # if click above on city, do not zoom in
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   300
        (tz, distance) = self.map.get_closest_timezone(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   301
        if event.button == 1 and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   302
            self.map.zoom_state != TZTimezone.ZOOM_IN and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   303
            tz is None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   304
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   305
            self.map.update_offset_with_scale(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   306
            self.map.zoom_in()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   307
        elif event.button == 3 and \
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   308
            self.map.zoom_state != TZTimezone.ZOOM_OUT:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   309
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   310
            self.map.update_offset_with_scale(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   311
            self.map.zoom_out()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   312
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   313
        (width, height) = widget.size_request()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   314
        widget.requisition.width = width
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   315
        widget.requisition.height = height
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   316
        widget.queue_resize()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   317
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   318
        return False
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   319
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   320
    def on_motion_notify(self, widget, event, user_data=None):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   321
        if event.state & gtk.gdk.BUTTON1_MASK:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   322
            self.map.update_offset(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   323
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   324
        (tz, distance) = self.map.get_closest_timezone(event.x, event.y)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   325
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   326
        if distance < 100:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   327
            self.map.set_default_cursor()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   328
        else:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   329
            self.map.set_cursor()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   330
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   331
        if tz is not None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   332
            self.map.set_timezone_hovered(tz)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   333
        else:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   334
            self.map.unset_hovered_timezone()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   335
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   336
        rect = gtk.gdk.Rectangle(0, 0,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   337
            self.map.allocation.width, self.map.allocation.height)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   338
        self.map.window.invalidate_rect(rect, False)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   339
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   340
        return True
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   341
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   342
    def get_selected_tz(self):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   343
        # "minus 1" to accound for "Select" options
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   344
        ictnt = self.ctnt_combo.get_active() - 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   345
        ictry = self.ctry_combo.get_active() - 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   346
        itz = self.tz_combo.get_active() - 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   347
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   348
        if ictnt < 0 or ictry < 0 or itz < 0:
1408
92e8da409b8b 7077090 Solaris 11 installer (timezone screen) should update date/time when user selects target timezone
Dermot <Dermot.McCluskey@Oracle.COM>
parents: 1204
diff changeset
   349
            LOGGER.warn("WARNING - Time Zone Invalid")
1204
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   350
            return (None, None, None)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   351
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   352
        continent = self.map.world.continents[ictnt]
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   353
        country = continent.countries[ictry]
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   354
        timezone = country.timezones[itz]
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   355
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   356
        return (continent, country, timezone)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   357
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   358
    def get_current_tz(self):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   359
        '''
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   360
        Get the current system TZ, via libzoneinfo, and return the indices
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   361
        into self.map.world for the continent, country and timezone which
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   362
        corresponds to the system timezone.
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   363
        '''
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   364
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   365
        system_timezone = self.map.world.get_system_tz("/")
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   366
        if system_timezone is None:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   367
            return (-1, -1, -1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   368
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   369
        ctnt_index = 0
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   370
        for continent in self.map.world.continents:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   371
            ctry_index = 0
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   372
            for country in continent.countries:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   373
                tz_index = 0
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   374
                for timezone in country.timezones:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   375
                    if timezone.tz_name == system_timezone:
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   376
                        return (ctnt_index, ctry_index, tz_index)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   377
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   378
                    tz_index += 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   379
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   380
                ctry_index += 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   381
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   382
            ctnt_index += 1
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   383
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   384
        return (-1, -1, -1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   385
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   386
    def combo_init(self):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   387
        self.combo.unparent()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   388
        self.combo.show()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   389
        self.pack_start(self.combo, expand=False, fill=False, padding=6)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   390
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   391
        self.ctnt_store = gtk.ListStore(gobject.TYPE_PYOBJECT,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   392
            gobject.TYPE_STRING)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   393
        self.ctnt_combo.set_model(self.ctnt_store)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   394
        renderer = gtk.CellRendererText()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   395
        gobject.GObject.set_data(renderer, "ellipsize",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   396
            pango.ELLIPSIZE_MIDDLE)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   397
        self.ctnt_combo.pack_start(renderer, expand=True)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   398
        self.ctnt_combo.set_attributes(renderer, text=1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   399
        gobject.GObject.connect(self.ctnt_combo,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   400
            "changed",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   401
            self.on_region_changed,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   402
            self)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   403
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   404
        self.ctry_store = gtk.ListStore(gobject.TYPE_PYOBJECT,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   405
            gobject.TYPE_STRING)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   406
        self.ctry_combo.set_model(self.ctry_store)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   407
        renderer = gtk.CellRendererText()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   408
        gobject.GObject.set_data(renderer, "ellipsize",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   409
            pango.ELLIPSIZE_MIDDLE)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   410
        self.ctry_combo.pack_start(renderer, expand=True)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   411
        self.ctry_combo.set_attributes(renderer, text=1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   412
        gobject.GObject.connect(self.ctry_combo,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   413
            "changed",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   414
            self.on_country_changed,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   415
            self)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   416
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   417
        self.tz_store = gtk.ListStore(gobject.TYPE_PYOBJECT,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   418
            gobject.TYPE_STRING)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   419
        self.tz_combo.set_model(self.tz_store)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   420
        renderer = gtk.CellRendererText()
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   421
        gobject.GObject.set_data(renderer, "ellipsize", pango.ELLIPSIZE_MIDDLE)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   422
        self.tz_combo.pack_start(renderer, expand=True)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   423
        self.tz_combo.set_attributes(renderer, text=1)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   424
        gobject.GObject.connect(self.tz_combo,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   425
            "changed",
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   426
            self.on_timezone_changed,
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   427
            self)
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   428
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   429
    def set_default_focus(self):
5c7590b24780 7050438 Update GUI Install to use CUD
Dermot <Dermot.McCluskey@Oracle.COM>
parents:
diff changeset
   430
        self.ctnt_combo.grab_focus()