diff --git a/utfpr_vvxpp/src/view/Controller.java b/utfpr_vvxpp/src/view/Controller.java index b2f48aa..7c467ab 100644 --- a/utfpr_vvxpp/src/view/Controller.java +++ b/utfpr_vvxpp/src/view/Controller.java @@ -4,134 +4,159 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; -import javafx.scene.canvas.Canvas; -import javafx.scene.canvas.GraphicsContext; +import javafx.fxml.Initializable; import javafx.scene.chart.BarChart; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.PieChart; import javafx.scene.chart.XYChart; +import javafx.scene.control.Alert; import javafx.scene.control.Label; -import javafx.scene.control.ScrollPane; +import javafx.scene.control.TextArea; import javafx.scene.control.TextField; -import javafx.scene.layout.AnchorPane; -import javafx.scene.paint.Color; -import javafx.scene.text.Font; -import javafx.scene.text.FontWeight; +import javafx.scene.web.WebView; import javafx.stage.FileChooser; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.net.URL; +import java.util.*; -public class Controller { +public class Controller implements Initializable{ - @FXML - private TextField inputCaminho; - - private FileChooser fileChooser; + private final String infos = "Projeto Desenvolvido Pela 1ª Turma de Engenharia de Software da UTFPR Campus Dois Vizinhos"; - private StringBuffer stringBuffer; + //olamundo eh o nome da classe start o metod depois o caminho + private String URL_NODE = "http://localhost:8888/NOME_CLASSE/NOME_METODO//home/user/Downloads/"; - private StringBuffer stringBufferXPluPlus; - - private List nos = new ArrayList<>(); + private List nosDoPrograma; @FXML - private ScrollPane scrollPaneOutput; + private PieChart graficoPizza; @FXML - private AnchorPane panelnternoScroll; - - private List linhas = new ArrayList<>(); + private BarChart barChartFx; @FXML - private PieChart graficoPizza; + private CategoryAxis xAxis; @FXML private Label lblQtNosExecut; @FXML - private BarChart barChartFx; + private TextField classeTxtField; @FXML - private CategoryAxis xAxis; + private TextField metodoTxtField; @FXML - private TextField classeTxtField; + private WebView webViewGrafo; @FXML - private TextField metodoTxtField; + private TextArea txtArquivoX; + @Override + public void initialize(URL location, ResourceBundle resources) { + try { + if(Main.getCaminhoArquivo() != null) { + buscar(Main.getCaminhoArquivo()); + } + } catch (FileNotFoundException e) { + System.err.println(e + e.getMessage()); + } catch (IOException e) { + System.err.println(e.getMessage()); + } + } - public void buscar() { - stringBuffer = new StringBuffer(); + public void buscar(String caminho) throws IOException { - fileChooser = new FileChooser(); - fileChooser.setTitle("Selecione o Arquivo de Mapeamento"); - File selectedFile = fileChooser.showOpenDialog(null); - File xPlusPlusSelected = null; - if (selectedFile != null) { - try { - BufferedReader bufferedReader = new BufferedReader(new FileReader(selectedFile)); + //Arquivo X++ + File primeiroArquivo = new File(caminho); + BufferedReader bufferedReaderXMaisMais = new BufferedReader(new FileReader(primeiroArquivo)); + String arquivox = bufferedReaderXMaisMais.readLine(); + StringBuffer arquivoXMaisMaisStringBuffer = new StringBuffer(); + while (arquivox != null){ + arquivoXMaisMaisStringBuffer.append(arquivox).append("\n"); + arquivox = bufferedReaderXMaisMais.readLine(); + } - String s = bufferedReader.readLine(); + //Arquivo arvore.txt + BufferedReader bufferedReaderArvore = new BufferedReader(new FileReader(new File(caminho + ".arvore.txt"))); + nosDoPrograma = new ArrayList<>(); + String noAtual = bufferedReaderArvore.readLine(); + nosDoPrograma.add(noAtual); + while (noAtual != null){ + noAtual = bufferedReaderArvore.readLine(); + nosDoPrograma.add(noAtual); + } - while (s != null) { - stringBuffer.append(s); - s = bufferedReader.readLine(); - } + //Arquivo saida.txt + String caminhoSaida = caminho.replace(primeiroArquivo.getName(), "saida.txt"); + BufferedReader bufferedReaderSaida = new BufferedReader(new FileReader(new File(caminhoSaida))); + StringBuffer arquivoSaidaBuffer = new StringBuffer(); + String arqSaida = bufferedReaderSaida.readLine(); + while (arqSaida != null){ + arquivoSaidaBuffer.append(arqSaida); + arqSaida = bufferedReaderSaida.readLine(); + } - List maps = processaMapeamento(stringBuffer.toString()); - fileChooser = new FileChooser(); - fileChooser.setTitle("Selecione o X++"); - xPlusPlusSelected = fileChooser.showOpenDialog(null); + processaTudo(arquivoXMaisMaisStringBuffer.toString(), nosDoPrograma, arquivoSaidaBuffer.toString()); - BufferedReader bufferedReader2 = new BufferedReader(new FileReader(xPlusPlusSelected)); + } - String s2 = bufferedReader2.readLine(); - stringBufferXPluPlus = new StringBuffer(); - linhas.add(s2); - while (s2 != null) { - stringBufferXPluPlus.append(s2); - s2 = bufferedReader2.readLine(); - linhas.add(s2); - } + public void buscar() throws IOException { - fileChooser = new FileChooser(); - fileChooser.setTitle("Selecione o Arquivo de nós"); - xPlusPlusSelected = fileChooser.showOpenDialog(null); + FileChooser fileChooser = new FileChooser(); - BufferedReader bufferedReader3 = new BufferedReader(new FileReader(xPlusPlusSelected)); + //Arquivo X++ + File primeiroArquivo = fileChooser.showOpenDialog(null); + BufferedReader bufferedReaderXMaisMais = new BufferedReader(new FileReader(primeiroArquivo)); + String arquivox = bufferedReaderXMaisMais.readLine(); + StringBuffer arquivoXMaisMaisStringBuffer = new StringBuffer(); + while (arquivox != null){ + arquivoXMaisMaisStringBuffer.append(arquivox).append("\n"); + arquivox = bufferedReaderXMaisMais.readLine(); + } - String s3 = bufferedReader3.readLine(); - nos = new ArrayList<>(); - nos.add(s3); - while (s3 != null) { - s3= bufferedReader3.readLine(); - if(!"".equals(s3)){ - nos.add(s3); - } - } + //Arquivo arvore.txt + BufferedReader bufferedReaderArvore = new BufferedReader(new FileReader(new File(primeiroArquivo.getAbsolutePath() + ".arvore.txt"))); + nosDoPrograma = new ArrayList<>(); + String noAtual = bufferedReaderArvore.readLine(); + nosDoPrograma.add(noAtual); + while (noAtual != null){ + noAtual = bufferedReaderArvore.readLine(); + nosDoPrograma.add(noAtual); + } - processaContextoGrafico(maps); + //Arquivo saida.txt + String caminho = primeiroArquivo.getAbsolutePath(); + String caminhoSaida = caminho.replace(primeiroArquivo.getName(), "saida.txt"); + BufferedReader bufferedReaderSaida = new BufferedReader(new FileReader(new File(caminhoSaida))); + StringBuffer arquivoSaidaBuffer = new StringBuffer(); + String arqSaida = bufferedReaderSaida.readLine(); + while (arqSaida != null){ + arquivoSaidaBuffer.append(arqSaida); + arqSaida = bufferedReaderSaida.readLine(); + } - criaGraficoPizza(maps); + processaTudo(arquivoXMaisMaisStringBuffer.toString(), nosDoPrograma, arquivoSaidaBuffer.toString()); + } - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } + public void processaTudo(String xMaisMaisTxt, List nosDoPrograma, String arquivoSaidaTxt){ + + emprimeTextoX(xMaisMaisTxt); + List mapeamento = processaMapeamentoSaida(arquivoSaidaTxt); + criaGraficoPizza(mapeamento, nosDoPrograma); + + } + public void emprimeTextoX(String s) { + txtArquivoX.clear(); + txtArquivoX.setText(s); } - public List processaMapeamento(String a) { + public List processaMapeamentoSaida(String a) { String vectorMap[] = a.replace("{", "1").split("\\|"); List mapeamentos = new ArrayList<>(); @@ -160,44 +185,14 @@ public List processaMapeamento(String a) { return mapeamentos; } - public void processaContextoGrafico(List maps) { - - int posicaox = 15; - int posicaoy = 13; - - Canvas canvas = new Canvas(637, 327); - - GraphicsContext gc2 = canvas.getGraphicsContext2D(); - GraphicsContext gc = canvas.getGraphicsContext2D(); - - gc2.setFill(Color.BLUE); - gc.setFill(Color.RED); - gc.setStroke(Color.BLACK); - gc.setLineWidth(2); - Font theFont = Font.font("Times New Roman", FontWeight.BOLD, 12); - gc.setFont(theFont); - gc2.setFont(theFont); - - panelnternoScroll.getChildren().add(canvas); - - - for (int i = 0; i < linhas.size(); i++) { - posicaoy = posicaoy + 13; - - gc.fillText(linhas.get(i), posicaox, posicaoy); - } - - - } - - public void criaGraficoPizza(List maps) { + public void criaGraficoPizza(List maps, List nos) { graficoPizza.getData().clear(); barChartFx.getData().clear(); Integer totalExecutado = 0; - stringBufferXPluPlus.trimToSize(); + // stringBufferXPluPlus.trimToSize(); Map nosQtExecutado = new HashMap(); @@ -287,12 +282,13 @@ public void criaGraficoPizza(List maps) { } - /* public void gerarGrafoBtn(){ - try { - Main.generate(classeTxtField.getText(), metodoTxtField.getText()); - } catch (IOException e) { - e.printStackTrace(); - } - }*/ + public void gerarGrafoBtn(){ + webViewGrafo.getEngine().load("http://www.google.com.br"); + } + + public void infosBtn(){ + new Alert(Alert.AlertType.INFORMATION, infos).show(); + } + } diff --git a/utfpr_vvxpp/src/view/Main.java b/utfpr_vvxpp/src/view/Main.java index da75a11..28675ad 100644 --- a/utfpr_vvxpp/src/view/Main.java +++ b/utfpr_vvxpp/src/view/Main.java @@ -6,20 +6,38 @@ import javafx.scene.Scene; import javafx.stage.Stage; +/** + * Para passar por parametro no windows usar essa string de exemplo: + * "C:\Users\gabri\Desktop\Verificacao e validacao aps teste\olamundo.x" + * + * Já no MAC usar essa: + */ public class Main extends Application { + private static String caminhoArquivo; @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("Cobertura X++"); - primaryStage.setScene(new Scene(root, 1100, 575)); + primaryStage.setScene(new Scene(root, 1280, 690)); + primaryStage.centerOnScreen(); + primaryStage.setMaximized(true); primaryStage.show(); } public static void main(String[] args) { + setCaminhoArquivo( args[0] ); launch(args); } + + public static String getCaminhoArquivo() { + return caminhoArquivo; + } + + public static void setCaminhoArquivo(String caminhoArquivo) { + Main.caminhoArquivo = caminhoArquivo; + } } diff --git a/utfpr_vvxpp/src/view/sample.fxml b/utfpr_vvxpp/src/view/sample.fxml index 85093ff..5abf578 100644 --- a/utfpr_vvxpp/src/view/sample.fxml +++ b/utfpr_vvxpp/src/view/sample.fxml @@ -6,29 +6,30 @@ - + + + + + + + - + -