public LinkedList getBranches() {
// Supongamos que tienes una lista de sucursales en tu clase GUI
return this.branches; // Devuelve la lista de sucursales como una lista de Strings
}
public NetworkTrain getNetworkTrain() {
return this.networkTrain; // Donde networkTrain es la instancia de tu grafo
}
public void removeBranch(Station branchName) {
branches.remove(branchName); // Remueve la sucursal de la lista
// Actualiza la visualización del grafo, si corresponde.
updateGraph();
}
public void updateGraph() {
if (graphStreamGraph == null || networkTrain == null) {
return; // Si el grafo o la red no están cargados, no hay nada que actualizar
}
// Limpiar el grafo actual para volver a cargar la red desde el estado actual de `networkTrain`
graphStreamGraph.clear();
// Volver a agregar todas las estaciones y conexiones desde la red de transporte
LinkedList<Station> allStations = networkTrain.getStations();
// Recorrer todas las estaciones de la red y añadirlas al grafo de GraphStream
for (Station station : allStations) {
addStationToGraph(station.getName()); // Añadir la estación al grafo
// Obtener los vecinos (conexiones) de la estación actual
LinkedList<Station> neighbors = networkTrain.getNeighbors(station);
for (Station neighbor : neighbors) {
addEdgeIfNotExists(station.getName(), neighbor.getName()); // Añadir las conexiones si no existen
}
}
// Colorear las sucursales en verde para diferenciarlas
for (Station branch : branches) {
if (graphStreamGraph.getNode(branch.getName()) != null) {
graphStreamGraph.getNode(branch.getName()).setAttribute("ui.style", "fill-color: green;");
graphStreamGraph.getNode(branch.getName()).setAttribute("ui.label", branch.getName()); // Mostrar el nombre de la estación
}
}
// Volver a mostrar el grafo en la interfaz
graphStreamGraph.display();
}
Changes on Page3, implemented the button and the list to remove some branches:
private void removeBranchButtonActionPerformed(java.awt.event.ActionEvent evt) {
// Obtiene el texto ingresado por el usuario
String branchName = inputRemoveBranch.getText().trim();
// Verifica si el texto no está vacío
if (!branchName.isEmpty()) {
// Obtiene la referencia a la instancia de NetworkTrain a través de GUI
NetworkTrain networkTrain = gui.getNetworkTrain(); // Asumo que tienes un método en GUI para obtener el grafo
// Busca la sucursal en NetworkTrain (el grafo) y la elimina
Station branchStation = networkTrain.getStationByName(branchName); // Método en NetworkTrain para obtener la estación
if (branchStation != null) {
gui.removeBranch(branchStation); // Llama al método removeBranch en GUI para eliminar la sucursal
displayBranchesList(); // Actualiza la lista en el TextArea
gui.updateGraph(); // Actualiza el grafo después de eliminar la sucursal
} else {
// Si la sucursal no existe, puedes mostrar un mensaje de error o manejar el caso
System.out.println("Sucursal no encontrada.");
}
}
}
// Método para obtener la lista de sucursales desde GUI y mostrarla en el TextArea
private void displayBranchesList() {
LinkedList branches = gui.getBranches(); // Obtiene la lista de sucursales desde GUI
StringBuilder branchesText = new StringBuilder();
// Recorre la lista y convierte cada estación a una cadena de texto
for (int i = 0; i < branches.size(); i++) {
Station branch = branches.get(i); // Obtiene cada estación
branchesText.append(branch.getName()).append("\n"); // Convierte a texto
}
// Actualiza el TextArea con la lista de sucursales
showBranchesList.setText(branchesText.toString());
}
Changes in WelcomeInterface:
private void deleteBranchActionPerformed(java.awt.event.ActionEvent evt) {
if (gui == null) { // Solo crea la instancia una vez si no existe
gui = new GUI();
}
// Obtén la lista de sucursales desde GUI
LinkedList branches = gui.getBranches();
// Pasa las sucursales a la interfaz Page3
Page3 p3 = new Page3(gui); // Le pasamos la lista de sucursales y la instancia de GUI
ShowPanel(p3); // Muestra la interfaz
}
New methods in GUI:
public LinkedList getBranches() {
// Supongamos que tienes una lista de sucursales en tu clase GUI
return this.branches; // Devuelve la lista de sucursales como una lista de Strings
}
Changes on Page3, implemented the button and the list to remove some branches:
private void removeBranchButtonActionPerformed(java.awt.event.ActionEvent evt) {
// Obtiene el texto ingresado por el usuario String branchName = inputRemoveBranch.getText().trim();
// Método para obtener la lista de sucursales desde GUI y mostrarla en el TextArea private void displayBranchesList() { LinkedList branches = gui.getBranches(); // Obtiene la lista de sucursales desde GUI
StringBuilder branchesText = new StringBuilder();
Changes in WelcomeInterface:
private void deleteBranchActionPerformed(java.awt.event.ActionEvent evt) { branches = gui.getBranches();
if (gui == null) { // Solo crea la instancia una vez si no existe gui = new GUI(); } // Obtén la lista de sucursales desde GUI LinkedList