def build_unselected_widgets(self): cdict = juju.constraints_to_dict(self.md.get('constraints', '')) self.juju_machine_id_button = MenuSelectButton( '{:20s}'.format(self.juju_machine_id), self.show_pin_chooser) self.juju_machine_id_label = Text("{:20s}".format( self.juju_machine_id)) self.cores_field = IntEdit('', str(cdict.get('cores', ''))) connect_signal(self.cores_field, 'change', self.handle_cores_changed) memval = cdict.get('mem', '') if memval != '': memval = memval / 1024 self.mem_field = Edit('', str(memval)) connect_signal(self.mem_field, 'change', self.handle_mem_changed) diskval = cdict.get('root-disk', '') if diskval != '': diskval = diskval / 1024 self.disk_field = Edit('', str(diskval)) connect_signal(self.disk_field, 'change', self.handle_disk_changed) if self.show_pin: machine_id_w = self.juju_machine_id_button else: machine_id_w = self.juju_machine_id_label cols = [ machine_id_w, self.cores_field, self.mem_field, self.disk_field ] cols = [AttrMap(w, 'string_input', 'string_input_focus') for w in cols] cols.append(Text("placeholder")) self.unselected_columns = Columns(cols, dividechars=2) self.update_assignments() return self.unselected_columns
def build_widgets(self): self.button = MenuSelectButton("I AM A MACHINE", self.do_select) self.action_button_cols = Columns([]) self.action_buttons = [] self.pile = Pile([self.button]) return self.pile
def build_widgets(self): self.button = MenuSelectButton("I AM A SERVICE", self.do_select) self.action_button_cols = Columns([], dividechars=1) self.action_buttons = [] self.pile = Pile([self.button]) return self.pile
def build_widgets(self): self.services_column = ServicesColumn(self.display_controller, self.placement_controller, self) self.machines_column = MachinesColumn(self.display_controller, self.placement_controller, self) self.relations_column = RelationsColumn(self.display_controller, self.placement_controller, self, self.metadata_controller) self.charmstore_column = CharmstoreColumn(self.display_controller, self.placement_controller, self, self.metadata_controller) self.options_column = OptionsColumn(self.display_controller, self.placement_controller, self, self.metadata_controller) self.machines_header = self.get_machines_header(self.machines_column) self.relations_header = self.get_relations_header() self.services_header = self.get_services_header() self.charmstore_header = self.get_charmstore_header( self.charmstore_column) self.options_header = self.get_options_header(self.options_column) cs = [self.services_header, self.charmstore_header] self.header_columns = Columns(cs, dividechars=2) self.columns = Columns([self.services_column, self.machines_column], dividechars=2) self.deploy_button = MenuSelectButton("\nCommit\n", on_press=self.do_deploy) self.deploy_button_label = Text("Some charms use default") self.placement_edit_body_pile = Pile([self.columns]) self.placement_edit_body = Filler(Padding( self.placement_edit_body_pile, align='center', width=('relative', 95)), valign='top') self.bundle_graph_text = Text("No graph to display yet.") self.bundle_graph_widget = Padding(self.bundle_graph_text, 'center', 'pack') b = AttrMap(self.deploy_button, 'frame_header', 'button_primary focus') self.footer_grid = GridFlow( [self.deploy_button_label, Padding(b, width=28, align='center')], 28, 1, 1, 'right') f = AttrMap(self.footer_grid, 'frame_footer', 'frame_footer') self.frame = Frame(header=Pile([self.header_columns, HR()]), body=self.placement_edit_body, footer=f) return self.frame
def __init__(self, relname, iface, reltype): other_reltype = { RelationType.Requires: RelationType.Provides, RelationType.Provides: RelationType.Requires }[reltype] self.source_relname = relname self.reltype = reltype s = "({}: nothing in bundle {} {})".format(relname, other_reltype.name.lower(), iface) super().__init__( AttrMap(MenuSelectButton(s), 'label', 'button_secondary focus'))
def build_widgets(self): self.charm_name = self.md['Name'] summary = self.md['Summary'] top = [] pad = 0 if self.header: top = [Text("\n{}\n".format(self.header))] if self.recommended: pad = 2 s = "{} ({})\n {}\n".format(self.charm_name, self.charm_source, summary) b = MenuSelectButton(s, on_press=self.handle_press) return Pile( top + [AttrMap(Padding(b, left=pad), 'text', 'button_secondary focus')])
def build_widgets(self): name_with_rev = self.bundle_source.split("/")[-1] bundle_name = "-".join(name_with_rev.split("-")[:-1]) if 'Machines' in self.md: summary = ("{} services " "on {} machines").format(len(self.md['Services']), len(self.md['Machines'])) else: summary = "{} services".format(len(self.md['Services'])) s = "{} ({})\n {}\n".format(bundle_name, self.bundle_source, summary) top = [] if self.header: top = [Text("\n{}\n".format(self.header))] b = MenuSelectButton(s, on_press=self.handle_press) return Pile(top + [AttrMap(b, 'text', 'button_secondary focus')])
def build_widgets(self): self.button = MenuSelectButton("", on_press=self.do_select) return AttrMap(self.button, 'text', 'button_secondary focus')