private Widget creerListeSallePanel() {
		setWidth("100%");
		setHeight("100%");
		listSallePan.isVisible();
		listSallePan.setTitle("Liste des salles");

		final CellTable<Salle> table = new CellTable<Salle>();

		// RECUPERER LES INSTANCES DES SALLES
		SalleService.Util.getInstance().getToutesSalles(new AsyncCallback<ArrayList<Salle>>() {
			@Override
			public void onSuccess(ArrayList<Salle> result) {
				if (result==null)
					Window.alert("Erreur lors de la récupération de la liste des utilisateurs");
				listeSalles = result;
				// The list of data to display.
				List<Salle> SALLES = listeSalles;
				// Create a data provider.
				ListDataProvider<Salle> dataProvider = new ListDataProvider<Salle>();

				// Connect the table to the data provider.
				dataProvider.addDataDisplay(table);

				// Add the data to the data provider, which automatically pushes it to the
				// widget.
				List<Salle> list = dataProvider.getList();
				for (Salle salle : SALLES) {
					list.add(salle);
				}
				// Add a ColumnSortEvent.ListHandler to connect sorting to the
				// java.util.List.
				ListHandler<Salle> columnSortHandler = new ListHandler<Salle>(
						list);
				table.addColumnSortHandler(columnSortHandler);
			}
			@Override
			public void onFailure(Throwable caught) {
				System.out.println("Erreur lors de la récupération de la liste des salles");
			}
		});

		class HasCellImpl implements HasCell<Salle, Salle> {
			private ActionCell<Salle> fCell;

			public HasCellImpl(String text, Delegate<Salle> delegate) {
				fCell = new ActionCell<Salle>(text, delegate);
			}

			@Override
			public Cell<Salle> getCell() {
				return fCell;
			}

			@Override
			public FieldUpdater<Salle, Salle> getFieldUpdater() {
				return null;
			}

			@Override
			public Salle getValue(Salle object) {
				return object;
			}
		}
		List<HasCell<Salle, ?>> cells = new LinkedList<HasCell<Salle, ?>>();
		cells.add(new HasCellImpl("supprimer", new Delegate<Salle>() {

			// SUPPRIMER ICI LA SALLE SELECTIONNE DE LA BDD
			@Override
			public void execute(Salle object) {
				SalleService.Util.getInstance().supprimerSalle(object.getNom(), new AsyncCallback<Boolean>(){
					public void onFailure(Throwable caught) {
						Window.alert("Erreur : "+ caught.getMessage());
					}
					public void onSuccess(Boolean result) {
						if (result==false)
							Window.alert("La salle n'existe plus");
						else{
							Window.alert("La salle à été supprimée");
							stackPanel.remove(presentationPan);
							stackPanel.remove(listUserPan);
							stackPanel.remove(listSallePan);
							stackPanel.remove(addSallePan);
							configPanel();
						}
					}
				});
			}
		}));

		CompositeCell<Salle> principaleColumn = new CompositeCell<Salle>(cells);
		Cell<Number> numberColumn = new NumberCell();

		table.addColumn(new TextColumn<Salle>() {

			@Override
			public String getValue(Salle object) {
				return object.getNom();
			}
		}, "Nom");

		// Create theme column.
		table.addColumn(new TextColumn<Salle>() {

			@Override
			public String getValue(Salle object) {
				return object.getTheme();
			}
		}, "Theme");




		// Create nb place max column.
		table.addColumn(new Column<Salle, Number>(numberColumn) {

			@Override
			public Number getValue(Salle salle) {
				return salle.getNbrPlaceMax();
			}
		},"nb Places Max");

		// Create bouton supprimer salle column.
		table.addColumn(new Column<Salle, Salle>(principaleColumn) {

			@Override
			public Salle getValue(Salle object) {
				return object;
			}
		},"Suprimer Salle");


		// Add it to the root panel.
		listSallePan.add(table);

		return listSallePan;
	}