wilian 2016-08-03 14:18:04 +00:00
parent 6499d229c3
commit 86bfc4fb72
3 changed files with 365 additions and 1 deletions

View File

@ -36,6 +36,7 @@ public class DetDiagramaAutobus implements Serializable {
public final static String ME = "ME";//MESA
public final static String GE = "GE";//GELADEIRA
public final static String ES = "ES";//ESCADA
public final static String BR = "BR";//BAR
public final static String ORIENTACION_W = "W";//OESTTE
public final static String ORIENTACION_S = "S";//SUL
@ -202,7 +203,8 @@ public class DetDiagramaAutobus implements Serializable {
|| tipoAsiento.equalsIgnoreCase(TV)
|| tipoAsiento.equalsIgnoreCase(WC)
|| tipoAsiento.equalsIgnoreCase(GE)
|| tipoAsiento.equalsIgnoreCase(ES)) {
|| tipoAsiento.equalsIgnoreCase(ES)
|| tipoAsiento.contains(BR)) {
return false;
}

View File

@ -60,8 +60,17 @@ public class DiagramaAutobus implements Serializable {
private List<DetDiagramaAutobus> detDiagramaAutobusList;
@Column(name = "DESCDIAGRAMA")
private String descDiagrama;
@Column(name = "INDBARCO")
private Boolean indbarco;
public DiagramaAutobus() {
super();
}
public DiagramaAutobus(Boolean indbarco) {
this();
setIndbarco(indbarco);
}
public Short getDiagramaautobusId() {
@ -171,4 +180,12 @@ public class DiagramaAutobus implements Serializable {
public void setAutobusList(List<Autobus> autobusList) {
this.autobusList = autobusList;
}
public Boolean getIndbarco() {
return indbarco;
}
public void setIndbarco(Boolean indbarco) {
this.indbarco = indbarco;
}
}

View File

@ -0,0 +1,345 @@
package com.rjconsultores.ventaboletos.vo.layout;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
public class DiagramaPoltronas implements Comparable<DiagramaPoltronas> {
private static Integer TOTAL_FILAS = 12;
private static Integer TOTAL_COLUNAS = 21;
private Integer fila;
private List<Coluna> colunas;
public DiagramaPoltronas() {
super();
}
public DiagramaPoltronas(Integer fila) {
this();
this.fila = fila;
}
public DiagramaPoltronas(Short fila) {
this();
this.fila = fila.intValue();
}
public class Coluna implements Comparable<Coluna> {
private Integer coluna;
private DiagramaPoltronas fila;
private List<Poltrona> poltronas;
public Coluna() {
super();
}
public Coluna(Integer coluna, DiagramaPoltronas fila) {
this();
this.fila = fila;
this.coluna = coluna;
}
public Coluna(Short coluna, DiagramaPoltronas fila) {
this();
this.fila = fila;
this.coluna = coluna.intValue();
}
public Integer getColuna() {
return coluna;
}
public void setColuna(Integer coluna) {
this.coluna = coluna;
}
@Override
public int compareTo(Coluna o) {
return this.getColuna().compareTo(o.getColuna());
}
public List<Poltrona> getPoltronas() {
return poltronas;
}
public DiagramaPoltronas getFila() {
return fila;
}
public void setFila(DiagramaPoltronas fila) {
this.fila = fila;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((coluna == null) ? 0 : coluna.hashCode());
result = prime * result + ((fila == null) ? 0 : fila.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Coluna other = (Coluna) obj;
if (coluna == null) {
if (other.coluna != null)
return false;
} else if (!coluna.equals(other.coluna))
return false;
if (fila == null) {
if (other.fila != null)
return false;
} else if (!fila.equals(other.fila))
return false;
return true;
}
public void adicionarPoltrona(String asiento, Boolean vendible) {
Poltrona poltrona = new Poltrona(getFila(), this, asiento, vendible);
if(poltronas == null) {
poltronas = new ArrayList<DiagramaPoltronas.Poltrona>();
poltronas.add(poltrona);
} else {
int index = poltronas.indexOf(poltrona);
if(index > -1) {
poltronas.set(index, poltrona);
} else {
poltronas.add(poltrona);
}
}
}
}
public class Poltrona {
private static final String CLASS_GREEN = "myGreen";
private static final String CLASS_GREY = "myGrey";
private static final String CLASS_WHITE = "myWhite";
private DiagramaPoltronas fila;
private Coluna coluna;
private String asiento;
private String sClass;
private Boolean vendible;
public Poltrona(DiagramaPoltronas fila, Coluna coluna, String asiento, Boolean vendible) {
this.fila = fila;
this.coluna = coluna;
this.asiento = asiento;
this.vendible = vendible;
sClass = CLASS_GREY;
if(StringUtils.isBlank(asiento)) {
sClass = CLASS_WHITE;
} else if(vendible != null && vendible) {
sClass = CLASS_GREEN;
}
}
public DiagramaPoltronas getFila() {
return fila;
}
public void setFila(DiagramaPoltronas fila) {
this.fila = fila;
}
public Coluna getColuna() {
return coluna;
}
public void setColuna(Coluna coluna) {
this.coluna = coluna;
}
public String getAsiento() {
return asiento;
}
public void setAsiento(String asiento) {
this.asiento = asiento;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + getOuterType().hashCode();
result = prime * result + ((asiento == null) ? 0 : asiento.hashCode());
result = prime * result + ((coluna == null) ? 0 : coluna.hashCode());
result = prime * result + ((fila == null) ? 0 : fila.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Poltrona other = (Poltrona) obj;
if (!getOuterType().equals(other.getOuterType()))
return false;
if (asiento == null) {
if (other.asiento != null)
return false;
} else if (!asiento.equals(other.asiento))
return false;
if (coluna == null) {
if (other.coluna != null)
return false;
} else if (!coluna.equals(other.coluna))
return false;
if (fila == null) {
if (other.fila != null)
return false;
} else if (!fila.equals(other.fila))
return false;
return true;
}
private DiagramaPoltronas getOuterType() {
return DiagramaPoltronas.this;
}
@Override
public String toString() {
return "bbtn_" + fila.getFila() + "_" + coluna.getColuna();
}
public String getsClass() {
return sClass;
}
public void setsClass(String sClass) {
this.sClass = sClass;
}
public Boolean getNotVendible() {
return !getVendible();
}
public Boolean getVendible() {
return vendible;
}
public void setVendible(Boolean vendible) {
this.vendible = vendible;
}
}
public Integer getFila() {
return fila;
}
public void setFila(Integer fila) {
this.fila = fila;
}
public List<Coluna> getColunas() {
return colunas;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + fila;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
DiagramaPoltronas other = (DiagramaPoltronas) obj;
if (fila != other.fila)
return false;
return true;
}
@Override
public int compareTo(DiagramaPoltronas o) {
return this.getFila().compareTo(o.getFila());
}
public static List<DiagramaPoltronas> getLayoutVazio() {
List<DiagramaPoltronas> layout = new ArrayList<DiagramaPoltronas>();
for (int i = 1; i <= TOTAL_FILAS; i++) {
DiagramaPoltronas fila = new DiagramaPoltronas(i);
for (int j = 1; j <= TOTAL_COLUNAS; j++) {
Coluna coluna = fila.new Coluna(j, fila);
coluna.adicionarPoltrona("",false);
fila.adicionarColuna(coluna);
}
layout.add(fila);
}
Collections.sort(layout);
for (DiagramaPoltronas fila : layout) {
Collections.sort(fila.getColunas());
}
return layout;
}
private void adicionarColuna(Coluna coluna) {
if(colunas == null) {
colunas = new ArrayList<DiagramaPoltronas.Coluna>();
colunas.add(coluna);
} else {
int index = colunas.indexOf(coluna);
if(index > -1) {
colunas.set(index, coluna);
} else {
colunas.add(coluna);
}
}
}
public static List<DiagramaPoltronas> carregarLayoutExistente(List<DetDiagramaAutobus> detDiagramaAutobus) {
List<DiagramaPoltronas> layout = getLayoutVazio();
for (DetDiagramaAutobus diagramaAutobus : detDiagramaAutobus) {
DiagramaPoltronas fila = new DiagramaPoltronas(diagramaAutobus.getNumefila());
int index = layout.indexOf(fila);
if(index > -1) {
fila = layout.get(index);
}
Coluna coluna = fila.new Coluna(diagramaAutobus.getNumecolumna(), fila);
fila.adicionarColuna(coluna);
coluna.adicionarPoltrona(diagramaAutobus.getAsiento(), diagramaAutobus.getVendible());
if(index == -1) {
layout.add(fila);
}
}
return layout;
}
}