-
Notifications
You must be signed in to change notification settings - Fork 0
/
GestionLibros.java
131 lines (125 loc) · 4 KB
/
GestionLibros.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package control;
public class GestionLibros extends Libro {
public class Nodo{
Nodo next;
Libro libro;
public Nodo() {
this.libro= null;
this.next = null;
}
private Nodo(Libro libro, int a) {
if (a==0) {
int cantidad = Integer.parseInt(VentanaGestionLibros.txtcantidad.getText());
int precio = Integer.parseInt(VentanaGestionLibros.txtprecio.getText());
this.libro = new Libro(VentanaGestionLibros.txtissn.getText(),VentanaGestionLibros.txtnombrelibro.getText(), VentanaGestionLibros.cmbTema.getSelectedItem().toString(),VentanaGestionLibros.txtdescripcion.getText(),cantidad,precio,(Libreria)VentanaGestionLibros.LibreriaBox.getSelectedItem());
}
else {
this.libro = libro;
}
this.next = null;
}
private Nodo(Libro libro, Nodo next) {
int cantidad = Integer.parseInt(VentanaGestionLibros.txtcantidad.getText());
int precio = Integer.parseInt(VentanaGestionLibros.txtprecio.getText());
this.libro = new Libro(VentanaGestionLibros.txtissn.getText(),VentanaGestionLibros.txtnombrelibro.getText(),VentanaGestionLibros.cmbTema.getSelectedItem().toString(), VentanaGestionLibros.txtdescripcion.getText(),cantidad,precio,(Libreria)VentanaGestionLibros.LibreriaBox.getSelectedItem());
this.next = next;
}
public Libro getlibro() {
return this.libro;
}
public void setnext(Nodo next) {
this.next = next;
}
public Nodo getnext() {
return this.next;
}
}
Nodo head;
Nodo current;
Nodo tail;
int posicion;
int tamaño;
public GestionLibros() {
this.head = new Nodo();
this.current = this.head;
this.tail = this.head;
this.tamaño = 0;
this.posicion = -1;
}
public void setcurrent(Libro libro) {
this.current = this.head.getnext();
while (!this.current.getlibro().Issn.equals(libro.Issn)) {
this.current = this.current.getnext();
}
}
public void append(Libro libro,int a) {
if (a==0) {
Nodo NuevoNodo = new Nodo(libro,0);
this.tail.setnext(NuevoNodo);
this.tail = NuevoNodo;
}
else {
Nodo NuevoNodo = new Nodo(libro,1);
this.tail.setnext(NuevoNodo);
this.tail = NuevoNodo;
}
this.tamaño++;
}
public void remove() {
//verificar que la lista no está vacía
if (this.tamaño == 0){
System.out.println("Lista vacía, no se puede remover ningún elemento");
return;
}
//en temp se va a almacenar el nodo ANTERIOR al que se quiere borrar
Nodo temp = this.head;
while (temp.getnext() != this.current) {
temp = temp.getnext();
}
//borrar la referencia al nodo actual
temp.setnext(this.current.getnext());
//necesario si se esta borrando el último nodo
if (this.current == this.tail) {
this.current = this.tail = temp;
this.posicion--;
}
else
//necesario si se está borrando un nodo diferente al último
this.current = this.current.getnext();
//disminuir el tamaño
this.tamaño--;
}
public void clear() {
this.head = this.tail = this.current = new Nodo();
this.posicion = -1;
this.tamaño = 0;
}
public void añadirlibros(Libreria plibreria,Libro libro) {
if (plibreria.libros == null) {
plibreria.libros = new GestionLibros();
}
plibreria.libros.append(libro,0);
}
public Libro Getlibro() {
return this.current.getlibro();
}
public String Getlibros() {
this.current=this.head.getnext();
String libros="";
while (this.current!=null) {
libros=this.current.getlibro().Nombre+","+libros;
this.current=this.current.getnext();
}
return libros;
}
@Override
public String toString() {
this.current=this.head.getnext();
String libros="";
while (this.current!=null) {
libros=this.current.getlibro().Nombre+","+libros;
this.current=this.current.getnext();
}
return libros;
}
}