X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fmoonshot-idcard-widget.vala;h=7ef6e2a368c2c533e6fc8b6b1e6a633c778f11b2;hb=7b7af6b7a02f69c6c6526a303b5532cb3d796f78;hp=2e50bdffd7d5bc3fc6df2a37f31a46a6e76f0770;hpb=fe758926d68ee515d12f6e87e644514e3c4ab921;p=moonshot-ui.git diff --git a/src/moonshot-idcard-widget.vala b/src/moonshot-idcard-widget.vala index 2e50bdf..7ef6e2a 100644 --- a/src/moonshot-idcard-widget.vala +++ b/src/moonshot-idcard-widget.vala @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014, JANET(UK) + * Copyright (c) 2011-2016, JANET(UK) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,72 +35,67 @@ class IdCardWidget : Box { static MoonshotLogger logger = get_logger("IdCardWidget"); + private static const ShadowType ARROW_SHADOW = ShadowType.NONE; + + private IdentityManagerView manager_view; + public IdCard id_card { get; set; default = null; } private VBox main_vbox; private HBox table; - // public Button delete_button { get; private set; default = null; } - // public Button details_button { get; private set; default = null; } - // public Button send_button { get; private set; default = null; } -// private HButtonBox hbutton_box; private EventBox event_box; private bool is_selected = false; + private Arrow arrow; private Label label; - internal int _position; + internal int _position = 0; internal int position { get {return _position;} set {_position = value; set_idcard_color();} - default = 0; } public signal void expanded(); - public signal void remove_id(); - public signal void details_id(); - public signal void send_id(); + public signal void collapsed(); - public void collapse() + private void select() { -// this.hbutton_box.set_visible(false); - is_selected = false; - update_id_card_label(); + expand(); + this.expanded(); + } - set_idcard_color(); + private void unselect() + { + collapse(); + this.collapsed(); } public void expand() { -// this.hbutton_box.set_visible(true); is_selected = true; update_id_card_label(); set_idcard_color(); + arrow.set(ArrowType.DOWN, ARROW_SHADOW); this.expanded(); } - private bool button_press_cb() + public void collapse() { - if (is_selected) - collapse(); - else - expand(); - - return false; - } + is_selected = false; + update_id_card_label(); - private void delete_button_cb() - { - this.remove_id(); + set_idcard_color(); + arrow.set(ArrowType.RIGHT, ARROW_SHADOW); } - private void details_button_cb() + private bool button_press_cb() { - this.details_id(); - } + if (is_selected) + unselect(); + else + select(); - private void send_button_cb() - { - this.send_id(); + return false; } private void set_idcard_color() @@ -114,7 +109,6 @@ class IdCardWidget : Box color.blue = 65535; } else { - logger.trace("set_idcard_color: position=" + position.to_string()); if (position % 2 == 0) { color.red = color.green = color.blue = 0xf2 << 8; @@ -127,41 +121,39 @@ class IdCardWidget : Box } } - var state = this.get_state(); - this.event_box.modify_bg(state, color); + this.event_box.modify_bg(StateType.NORMAL, color); + this.arrow.modify_bg(StateType.NORMAL, color); } private void update_id_card_label() { // !!TODO: Use a table to format the labels and values - string services_text = "Services: "; - string service_spacer = " "; + string services_text = _("Services: "); + string service_spacer = _("\n "); - var label_text = Markup.printf_escaped("%s", this.id_card.display_name); + var display_name = (manager_view.selection_in_progress() && this.id_card.is_no_identity() + ? "Do not use a Moonshot identity for this service" : this.id_card.display_name); + var label_text = Markup.printf_escaped(_("%s"), display_name); if (is_selected) { label_text += "\nUsername: " + id_card.username; label_text += "\nRealm: " + id_card.issuer; - - var sep = ""; - for (int i = 0; i < id_card.services.length; i++) - { - services_text += sep; - services_text += id_card.services[i]; - - sep = "\n" + service_spacer; + if (!id_card.trust_anchor.is_empty()) { + label_text += _("\nTrust anchor: Enterprise provisioned"); } - label_text += "\n" + services_text; + services_text += this.id_card.get_services_string(service_spacer); + label_text += _("\n") + services_text; } label.set_markup(label_text); } - public IdCardWidget(IdCard id_card) + public IdCardWidget(IdCard id_card, IdentityManagerView manager_view) { this.id_card = id_card; + this.manager_view = manager_view; var image = new Image.from_pixbuf(get_pixbuf(id_card)); @@ -173,26 +165,11 @@ class IdCardWidget : Box table = new Gtk.HBox(false, 6); table.pack_start(image, false, false, 0); table.pack_start(label, true, true, 0); - - // this.delete_button = new Button.with_label(_("Delete")); - // this.details_button = new Button.with_label(_("View details")); - // this.send_button = new Button.with_label(_("Send")); - // set_atk_name_description(delete_button, _("Delete"), _("Delete this ID Card")); - // set_atk_name_description(details_button, _("Details"), _("View the details of this ID Card")); - // set_atk_name_description(send_button, _("Send"), _("Send this ID Card")); - // this.hbutton_box = new HButtonBox(); - // hbutton_box.pack_end(delete_button); - // hbutton_box.pack_end(details_button); - // hbutton_box.pack_end(send_button); - // send_button.set_sensitive(false); - - // delete_button.clicked.connect(delete_button_cb); - // details_button.clicked.connect(details_button_cb); - // send_button.clicked.connect(send_button_cb); + this.arrow = new Arrow(ArrowType.RIGHT, ARROW_SHADOW); + table.pack_start(arrow, false, false); this.main_vbox = new VBox(false, 12); main_vbox.pack_start(table, true, true, 0); -// main_vbox.pack_start(hbutton_box, false, false, 0); main_vbox.set_border_width(12); event_box = new EventBox(); @@ -202,27 +179,7 @@ class IdCardWidget : Box this.pack_start(event_box, true, true); this.show_all(); -// this.hbutton_box.hide(); set_idcard_color(); } - - // private void set_atk_name_description(Widget widget, string name, string description) - // { - // if (widget == null) - // { - // logger.error("set_atk_name_description: widget is null for name=" + name + "; description=" + description); - // return; - // } - - // var atk_widget = widget.get_accessible(); - - // if (atk_widget == null) - // { - // logger.error("set_atk_name_description: atk_widget is null for name=" + name + "; description=" + description); - // return; - // } - // atk_widget.set_name(name); - // atk_widget.set_description(description); - // } }