package tmp::compssUsers;

use common;

my $low_resources = availableRamMB() < 100 || detect_devices::ix86_cpu_frequency() < 350;
my $meta_class = $::o->{meta_class};
my $powerpack = $meta_class eq 'powerpack';
my $server = $meta_class eq 'server';

my $h = {
N_("XtreemOS bundle") => 
[
  { label => N_("VOlife"),
    descr => N_("VOlife backend and frontend"),
    flags => [ qw(XOS VOLIFE) ], 
    default_selected => 1,
  },
  { label => N_("VO support"),
    descr => N_("System Database and authentification library plugins for XtreemOS"),
    flags => [ qw(XOS XOS_VOSUPPORT) ], 
    default_selected => 1,
  },
  { label => N_("XOS VOM"),
    descr => N_("Core classes needed to run DIXI, XATI and the services"),
    flags => [ qw(XOS VOM) ],
    default_selected => 1,
  },
  { label => N_("XOS DIXI"),
    descr => N_("DIXI, XATI and the services"),
    flags => [ qw(DIXI) ],
    default_selected => 1,
  },
  { label => N_("XOS AEM"),
    descr => N_("AEM"),
    flags => [ qw(AEM) ],
    default_selected => 1,
  },
  { label => N_("Saga Framework"),
    descr => N_("The SAGA Framework"),
    flags => [ qw(SAGA) ],
    default_selected => 1,
  },
  { label => N_("XtreemOS Client"),
    descr => N_("XOS Client"),
    flags => [ qw(XOS_VOSUPPORT) ],
    default_selected => 1,
  },
  { label => N_("XtreemFS"),
    descr => N_("XtreemFS is an object-based file system"),
    flags => [ qw(XTREEMFS) ],
    default_selected => 1,
  },
  { label => N_("XtreemOS Mobile device"),
    descr => N_("mobilde-device, cdacclient"),
    flags => [ qw(LINUXMD) ],
    default_selected => 1,
  },
  { label => N_("LinuxSSI, kernel-linuxssi"),
    descr => N_("kernel-linuxssi"),
    flags => [ qw(LINUXSSI) ],
    default_selected => 0,
  },
  { label => N_("BLCR, kernel 2.6.27"),
    descr => N_("kernel-2.6.27, blcr module"),
    flags => [ qw(BLCR) ],
    default_selected => 1,
  },
  { label => N_("Object Sharing Service release"),
    descr => N_("oss, liboss0"),
    flags => [ qw(OSS) ],
    default_selected => 1,
  },
],

N_("Graphical Environment") => 
[
  { label => N_("IceWm Desktop"),
    flags => [ qw(ICEWM X ACCESSIBILITY) ], 
    default_selected => 1,
  },
],

N_("Linux tools") =>
[
  { label => N_("Useful Tools"),
    descr => N_("remote command, ssh server, shell etc..."),
    flags => [ qw(NETWORKING_REMOTE_ACCESS_SERVER EDITORS TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS XOS NETWORKING_REMOTE_ACCESS NETWORKING_FILE MONITORING NETWORKING_WWW MINIMAL_DOCS NETWORKING_DNS) ],
    default_selected => 1,
  },
    { label => N_("Development"),
      descr => N_("C and C++ development libraries, programs and include files"),
      flags => [ qw(DEVELOPMENT EDITORS) ],
  },
    { label => N_("LSB"),
      descr => N_("Linux Standard Base. Third party applications support"),
      flags => [ qw(LSB) ],
    },
],

};

foreach my $path (keys %$h) {
    foreach (@{$h->{$path}}) {
	$_->{path} = $path;
	$_->{uid} = join('|', $path, $_->{label});
    }
}

my $compssUsers = [ map { @$_ } values %$h ];

my $gtk_display_compssUsers = sub {
    my ($entry) = @_;

    require ugtk2;
    ugtk2->import(qw(:helpers :wrappers :create));
    require mygtk2;
    mygtk2->import(qw(gtknew));

    my $entries_in_path = sub {
	my ($path) = @_;
	gtknew('Title2', label => translate($path)), map { $entry->($_) } @{$h->{$path}};
    };

    gtkpack_(Gtk2::VBox->new(0, 0),
	     1, gtkpack_(Gtk2::HBox->new(0, 0),
			 1, gtkpack(Gtk2::VBox->new(0, 0), 
				    $entries_in_path->('XtreemOS bundle'),
				   ),
			 0, gtkpack(Gtk2::VBox->new(0, 0),
				    $entries_in_path->('Linux tools'),
				    '',
				    $entries_in_path->('Graphical Environment'),
				   ),
			),
	    );
};

my $gtk_display_compssUsers_2 = sub {

  require ugtk2;
  ugtk2->import(qw(:helpers :wrappers :create));
  require mygtk2;
  mygtk2->import(qw(gtknew));

    gtkpack__(Gtk2::VBox->new,
	gtknew('Label', text => N("XtreemOS bundle")),
	Gtk2::HSeparator->new,
	'',
	gtknew('Label', text => N("Now we will install all XtreemOS components on your system.")),
	gtknew('Label', text => N("XtreemOS is provided with a Window Manager and some other GNU/Linux tools.")),
	'',
	Gtk2::HSeparator->new,
	'',
	gtknew('Label', text => N("LinuxSSI is not installed by default.")),
       	gtknew('Label', text => N("You should go to the 'individual package selection' to install it.")),
       	gtknew('Label', text => N("(default runlevel will be 2)")),
	'',
	Gtk2::HSeparator->new,
    );
};


$compssUsers, $gtk_display_compssUsers;
