/*
* Copyright 2011 Marek Pilecky
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.github.mefi.jkuuza.gui;
import com.github.mefi.jkuuza.analyzer.Case;
import com.github.mefi.jkuuza.analyzer.CaseResolver;
import com.github.mefi.jkuuza.analyzer.Condition;
import com.github.mefi.jkuuza.analyzer.ConditionsResolver;
import com.github.mefi.jkuuza.analyzer.ExtractionResolver;
import com.github.mefi.jkuuza.analyzer.Rules;
import com.github.mefi.jkuuza.analyzer.Methods;
import com.github.mefi.jkuuza.analyzer.Reflector;
import com.github.mefi.jkuuza.analyzer.gui.AnalyzerConsole;
import com.github.mefi.jkuuza.analyzer.gui.component.JReflectorBox.JReflectorBox;
import com.github.mefi.jkuuza.app.db.CouchDbConnectionException;
import com.github.mefi.jkuuza.parser.ContentAnalyzer;
import com.github.mefi.jkuuza.gui.model.FlashMessageType;
import com.github.mefi.jkuuza.app.App;
import com.github.mefi.jkuuza.app.db.DbConnector;
import com.github.mefi.jkuuza.app.db.DefaultDbParams;
import com.github.mefi.jkuuza.crawler.SimpleCrawler;
import com.github.mefi.jkuuza.crawler.gui.CrawlerConsole;
import com.github.mefi.jkuuza.gui.model.FlashMessage;
import com.github.mefi.jkuuza.gui.model.FlashMessagesDisplayer;
import com.github.mefi.jkuuza.model.PageRepository;
import com.github.mefi.jkuuza.utils.ValueComparator;
import com.github.mefi.jkuuza.data.AnalyzerCasesLoader;
import com.github.mefi.jkuuza.model.BasicProductProperties;
import com.github.mefi.jkuuza.model.BodyContent;
import com.github.mefi.jkuuza.model.BodyContentRepository;
import com.github.mefi.jkuuza.model.Product;
import com.github.mefi.jkuuza.model.ProductRepository;
import java.awt.BorderLayout;
import java.awt.Component;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.prefs.Preferences;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingWorker;
import javax.swing.border.EtchedBorder;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Selector.SelectorParseException;
/**
* The application's main frame.
*/
public class AppView extends FrameView {
private AppView(SingleFrameApplication app) {
// <editor-fold defaultstate="collapsed" desc="...">
super(app);
initComponents();
try {
preferences = Preferences.userRoot().node(this.getClass().getName());
} catch (RuntimeException e) {
System.out.println("nastal problém");
}
loadSettings();
initAnalyzerSampleConditions();
crawlerQueueModel = new DefaultListModel();
jlstCrawlerQueue.setModel(crawlerQueueModel);
jpHeaderPanel.setVisible(false);
flashMessagesList = new ArrayList<JLabel>();
repaintAnalyzerStep(actualAnalyzerStep);
//init of Analyzer step2
analyzerStep2Components = new ArrayList<JReflectorBox>();
analyzerMethods = Reflector.getDeclaredMethodsWithInfo(ContentAnalyzer.class);
// status bar initialization - message timeout, idle icon and busy animation, etc
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusMessageLabel.setText("");
}
});
messageTimer.setRepeats(false);
int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
for (int i = 0; i < busyIcons.length; i++) {
busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
}
busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
public void actionPerformed(ActionEvent e) {
busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
}
});
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
// connecting action tasks to status bar via TaskMonitor
TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if ("started".equals(propertyName)) {
if (!busyIconTimer.isRunning()) {
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
}
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
} else if ("done".equals(propertyName)) {
busyIconTimer.stop();
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
progressBar.setValue(0);
} else if ("message".equals(propertyName)) {
String text = (String) (evt.getNewValue());
statusMessageLabel.setText((text == null) ? "" : text);
messageTimer.restart();
} else if ("progress".equals(propertyName)) {
int value = (Integer) (evt.getNewValue());
progressBar.setVisible(true);
progressBar.setIndeterminate(false);
progressBar.setValue(value);
}
}
});
// </editor-fold>
}
/**
* Shows About dialog
*/
@Action
public void showAboutBox() {
if (aboutBox == null) {
JFrame mainFrame = App.getApplication().getMainFrame();
aboutBox = new AboutBox(mainFrame);
aboutBox.setLocationRelativeTo(mainFrame);
}
App.getApplication().show(aboutBox);
}
/**
* Opens FileChooser dialog and loads selected file
*/
@Action
public void loadCrawlerUrlsFromFile() {
int returnVal = jfchCrawlerUrlsChooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = jfchCrawlerUrlsChooser.getSelectedFile();
setCrawlerQueueFromFile(file);
} else {
//jtaAnalyzerStep3Preview.append("File access cancelled by user.");
}
}
@Action
public void loadCrawlerUrlFromDialog() {
String defaultText = "http://";
String url = jtfCrawlerAddUrl.getText();
if (!url.equals(defaultText)) {
addUrlToCrawlerQueue(url);
}
jdCrawlerAddUrl.setVisible(false);
jtfCrawlerAddUrl.setText(defaultText);
}
private void addUrlToCrawlerQueue(String u) {
URL url = null;
int responseCode = 0;
try {
url = new URL(u);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
responseCode = connection.getResponseCode();
} catch (MalformedURLException ex) {
displayFlashMessage("CHYBA: neplatná URL [" + url.toString() + "] - " + ex.getMessage() + ".", FlashMessageType.ERROR);
} catch (IOException ex) {
displayFlashMessage("CHYBA: nepodařilo se připojit k URL [" + url.toString() + "] " + ".", FlashMessageType.ERROR);
}
if (responseCode != 0 && responseCode != 404) {
crawlerQueueModel.addElement(url);
CrawlerConsole.print("Přidána URL " + url.toString() + " [status " + responseCode + "]");
} else {
displayFlashMessage("CHYBA: Stránka [" + url.toString() + "] nenalezena.", FlashMessageType.ERROR);
}
if (!crawlerQueueModel.isEmpty()) {
jlstCrawlerQueue.setSelectedValue(crawlerQueueModel.lastElement(), true);
}
}
@Action
public void showCrawlerUrlDialog() {
if (jdCrawlerAddUrl == null) {
JFrame mainFrame = App.getApplication().getMainFrame();
jdCrawlerAddUrl = new JDialog(mainFrame);
jdCrawlerAddUrl.setLocationRelativeTo(mainFrame);
}
App.getApplication().show(jdCrawlerAddUrl);
}
/**
* Loads URLs from File and adds them to ListModel
*
* @param file
*/
private void setCrawlerQueueFromFile(File file) {
String url = "";
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
url = scanner.nextLine();
addUrlToCrawlerQueue(url);
}
} catch (FileNotFoundException ex) {
displayFlashMessage("CHYBA: zvolený soubor neexistuje.", FlashMessageType.ERROR);
}
}
@Action
public void removeSelectedUrlFromCrawlerQueue() {
URL url = (URL) crawlerQueueModel.remove(jlstCrawlerQueue.getSelectedIndex());
CrawlerConsole.print("Smazána URL " + url.toString() + ".");
}
@Action
public void runCrawler() {
SwingWorker swingWorker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
CrawlerConsole.print("Spuštěn crawler", true);
try {
DbConnector dbConnector = new DbConnector(preferences);
SimpleCrawler crawler = new SimpleCrawler(dbConnector);
if (crawlerQueueModel.isEmpty()) {
displayFlashMessage("CHYBA: žádné url ke stahování.", FlashMessageType.ERROR);
} else {
List list = new ArrayList();
for (int i = 0; i < crawlerQueueModel.size(); i++) {
list.add(crawlerQueueModel.get(i).toString());
}
crawler.execute(list);
// invoking of index update
CrawlerConsole.printNewLine();
CrawlerConsole.print("Zahájeno přeskupení indexů.");
try {
PageRepository pageRepository = new PageRepository(dbConnector.getConnection());
pageRepository.getTotalCount();
} catch(Exception ex) {
} finally {
CrawlerConsole.print("Page [OK].");
}
try {
BodyContentRepository bodyContentRepository = new BodyContentRepository(dbConnector.getConnection());
bodyContentRepository.getTotalCount();
} catch(Exception ex) {
} finally {
CrawlerConsole.print("BodyContent [OK].");
}
try {
ProductRepository productRepository = new ProductRepository(dbConnector.getConnection());
productRepository.getTotalCount();
} catch(Exception ex) {
} finally {
CrawlerConsole.print("Product [OK].");
}
CrawlerConsole.print("Přeskupení indexů dokončeno.");
}
} catch (IOException ex) {
displayFlashMessage("Nepodařilo se načíst nastavení databáze.", FlashMessageType.ERROR);
} catch (CouchDbConnectionException ex) {
displayFlashMessage("Nepodařilo se připojit k databázi.", FlashMessageType.ERROR);
} catch (Exception ex) {
displayFlashMessage("Při běhu crawleru došlo k blíže nespecifikované chybě.", FlashMessageType.ERROR);
}
return null;
}
@Override
protected void done() {}
};
swingWorker.execute();
}
@Action
public void nextAnalyzerStep() {
if (actualAnalyzerStep <= analyzerStepsCount) {
repaintAnalyzerStep(++actualAnalyzerStep);
}
}
@Action
public void prevAnalyzerStep() {
if (actualAnalyzerStep > 1) {
repaintAnalyzerStep(--actualAnalyzerStep);
}
}
public void repaintAnalyzerStep(int step) {
if (actualAnalyzerStepPanel != null) {
jpAnalyzer.remove(actualAnalyzerStepPanel);
}
switch (actualAnalyzerStep) {
case 1:
handleAnalyzerStepStatus(1);
actualAnalyzerStepPanel = jpAnalyzerStep1;
jlbAnalyzerStep.setText("Krok 1/" + analyzerStepsCount);
break;
case 2:
if (jcbAnalyzerStep1DomainsToAnalyze.getSelectedItem().equals("-") || jcbAnalyzerStep1DomainsToAnalyze.getSelectedItem().equals("")) {
handleAnalyzerStepStatus(1);
actualAnalyzerStepPanel = jpAnalyzerStep1;
--actualAnalyzerStep;
displayFlashMessage("Není vybrána doména k extrakci!", FlashMessageType.ERROR);
} else {
handleAnalyzerStepStatus(2);
actualAnalyzerStepPanel = jpAnalyzerStep2;
jlbAnalyzerStep.setText("Krok 2/" + analyzerStepsCount);
if (!analyzerLoadConditionsLocked) {
if (jcbAnalyzerStep1SampleConditions.getSelectedIndex() != 0) {
loadSavedConditions(jcbAnalyzerStep1SampleConditions.getSelectedItem().toString());
analyzerLoadConditionsLocked = true;
} else {
addReflectorBoxToPane(jpAnalyzerStep2TopMain, analyzerMethods);
analyzerLoadConditionsLocked = true;
}
}
}
break;
case 3:
if (checkAllReflectorComponentsFilled()) {
if (jcbAnalyzerStep1SampleConditions.getSelectedIndex() != 0) {
loadSavedRules(jcbAnalyzerStep1SampleConditions.getSelectedItem().toString());
}
handleAnalyzerStepStatus(3);
actualAnalyzerStepPanel = jpAnalyzerStep3;
jlbAnalyzerStep.setText("Krok 3/" + analyzerStepsCount);
} else {
displayFlashMessage("Všechna pravidla musí být vyplněna!", FlashMessageType.ERROR);
actualAnalyzerStepPanel = jpAnalyzerStep2;
actualAnalyzerStepPanel.repaint();
handleAnalyzerStepStatus(2);
--actualAnalyzerStep;
}
break;
case 4:
jbtAnalyzerStepNext.setEnabled(false);
if (checkRequiredExtractionRulesFiledsFilled()) {
actualAnalyzerStepPanel = jpAnalyzerStep4;
jlbAnalyzerStep.setText("Probíhá analýza");
runAnalyzerProcess();
} else {
handleAnalyzerStepStatus(3);
actualAnalyzerStepPanel = jpAnalyzerStep3;
--actualAnalyzerStep;
}
break;
default:
}
actualAnalyzerStepPanel.setBorder(new EtchedBorder());
jpAnalyzer.add(actualAnalyzerStepPanel, BorderLayout.CENTER);
actualAnalyzerStepPanel.setVisible(true);
jpAnalyzer.repaint();
}
protected void runAnalyzerProcess() {
SwingWorker swingWorker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
Case casex = createCase();
try {
DbConnector dbConnector = new DbConnector(preferences);
AnalyzerConsole.print("Spuštěna extrakce.", true);
AnalyzerConsole.printNewLine();
if (!jcbAnalyzerStep1DomainsToAnalyze.getSelectedItem().equals("")) {
try {
jbtAnalyzerStepPrev.setEnabled(false);
CaseResolver caseResolver = new CaseResolver(casex, dbConnector);
caseResolver.resolve(jcbAnalyzerStep1DomainsToAnalyze.getSelectedItem().toString());
jbtAnalyzerStepPrev.setEnabled(true);
//TODO: GONNA CATCH EM ALL!
} catch (NoSuchMethodException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
displayFlashMessage("CHYBA: Není vybrána doména k extrakci!", FlashMessageType.ERROR);
}
} catch (CouchDbConnectionException ex) {
displayFlashMessage("Nepodařilo se připojit k databázi.", FlashMessageType.ERROR);
}
return null;
}
@Override
protected void done() {}
};
swingWorker.execute();
}
protected Case createCase() {
Rules rules = createRulesFromTextFields();
List<Condition> conditions = new ArrayList<Condition>();
Component[] comps = jpAnalyzerStep2TopMain.getComponents();
for (int i = 0; i < comps.length; i++) {
if (comps[i] instanceof JReflectorBox) {
JReflectorBox reflectorBox = (JReflectorBox) comps[i];
Condition condition = new Condition(new ContentAnalyzer(), reflectorBox.getModel().getMethodName(), reflectorBox.getModel().getExpected(), reflectorBox.getModel().getParams());
conditions.add(condition);
}
}
return new Case(conditions, rules);
}
private void initAnalyzerSampleConditions() {
Map<String, Case> map = AnalyzerCasesLoader.load();
ArrayList sampleHosts = new ArrayList();
sampleHosts.add("-");
for (Map.Entry<String, Case> entry : map.entrySet()) {
sampleHosts.add(entry.getKey());
}
jcbAnalyzerStep1SampleConditions.setModel(new DefaultComboBoxModel(sampleHosts.toArray()));
}
@Action
public void initAnalyzerDomainsToAnalyze() {
TreeMap<String, Integer> map = getCrawledDomains();
List<String> hosts = new ArrayList<String>();
hosts.add("");
for (Map.Entry<String, Integer> en : map.entrySet()) {
hosts.add(en.getKey());
}
jcbAnalyzerStep1DomainsToAnalyze.setModel(new DefaultComboBoxModel(hosts.toArray()));
jcbAnalyzerStep1DomainsToAnalyze.revalidate();
if (hosts.size() > 1) {
displayFlashMessage("Domény byly načteny", FlashMessageType.INFO);
} else {
displayFlashMessage("Žádné záznamy nebyly nalezeny.", FlashMessageType.INFO);
}
}
public void handleAnalyzerStepStatus(int step) {
jbtAnalyzerStepPrev.setEnabled(step > 1);
jbtAnalyzerStepNext.setEnabled(step <= analyzerStepsCount);
if (step == analyzerStepsCount) {
jbtAnalyzerStepNext.setText("Spustit extrakci");
} else if(step == analyzerStepsCount+1) {
jbtAnalyzerStepNext.setEnabled(false);
} else {
jbtAnalyzerStepNext.setText("DÁLE >");
}
}
public void loadSavedConditions(String host) {
Map<String, Case> map = AnalyzerCasesLoader.load();
loadReflectorBoxes(map.get(host).getConditions());
setPreviewUrls(map.get(host));
}
public void loadReflectorBoxes(List<Condition> conditions) {
for (Iterator<Condition> it = conditions.iterator(); it.hasNext();) {
Condition condition = it.next();
JReflectorBox box = new JReflectorBox(Reflector.getDeclaredMethodsWithInfo(condition.getConditionObject().getClass()));
box.setDefaultValues(condition);
analyzerStep2Components.add(box);
jpAnalyzerStep2TopMain.add(box);
}
}
public void loadSavedRules(String host) {
Map<String, Case> map = AnalyzerCasesLoader.load();
Rules rules = map.get(host).getRules();
setRulesFileds(rules);
}
public void setPreviewUrls(Case casex) {
jtfAnalyzerStep2Url.setText(casex.getPreviewUrl());
jtfAnalyzerStep3Url.setText(casex.getPreviewUrl());
}
public void setRulesFileds(Rules rule) {
jtfAnalyzerStep3ProductName.setText(rule.getSelector(BasicProductProperties.NAME));
jtfAnalyzerStep3ProductDescription.setText(rule.getSelector(BasicProductProperties.DESCRIPTION));
jtfAnalyzerStep3ProductPrice.setText(rule.getSelector(BasicProductProperties.PRICE));
jtfAnalyzerStep3ProductPriceDPH.setText(rule.getSelector(BasicProductProperties.PRICE_DPH));
jtfAnalyzerStep3ProductType.setText(rule.getSelector(BasicProductProperties.TYPE));
jtfAnalyzerStep3ProductProducer.setText(rule.getSelector(BasicProductProperties.PRODUCER));
jtfAnalyzerStep3ProductParameterName.setText(rule.getSelector(BasicProductProperties.PARAMETER_NAME));
jtfAnalyzerStep3ProductParameterValue.setText(rule.getSelector(BasicProductProperties.PARAMETER_VALUE));
}
public void addReflectorBoxToPane(JPanel pane, Methods methods) {
JReflectorBox box = new JReflectorBox(methods);
analyzerStep2Components.add(box);
pane.add(box);
analyzerStep2countOfComponents++;
pane.revalidate();
pane.repaint();
}
@Action
public void addNextReflectorComponent() {
if (checkAllReflectorComponentsFilled()) {
addReflectorBoxToPane(jpAnalyzerStep2TopMain, analyzerMethods);
} else {
displayFlashMessage("Pravidlo není správně vyplněno!", FlashMessageType.ERROR);
}
}
public boolean checkRequiredExtractionRulesFiledsFilled() {
List<JTextField> requiredFields = new ArrayList<JTextField>();
requiredFields.add(jtfAnalyzerStep3ProductName);
requiredFields.add(jtfAnalyzerStep3ProductPrice);
for (Iterator<JTextField> it = requiredFields.iterator(); it.hasNext();) {
JTextField jTextField = it.next();
if (jTextField.getText().equals("")) {
displayFlashMessage("Nejsou vyplněna povinná pravidla pro extrakci!", FlashMessageType.ERROR);
return false;
}
}
return true;
}
public boolean checkAllReflectorComponentsFilled() {
Component[] comps = jpAnalyzerStep2TopMain.getComponents();
boolean okStatus = true;
for (int i = 0; i < comps.length; i++) {
if (comps[i] instanceof JReflectorBox) {
JReflectorBox reflectorBox = (JReflectorBox) comps[i];
if (!reflectorBox.isFilled()) {
okStatus = false;
}
}
}
return okStatus;
}
@Action
public void removeLastReflectorComponent() {
if (analyzerStep2Components.size() > 1) {
JReflectorBox box = analyzerStep2Components.get(analyzerStep2Components.size() - 1);
analyzerStep2Components.remove(box);
jpAnalyzerStep2TopMain.remove(box);
} else {
displayFlashMessage("Upozornění: musí zůstat alespoň jedno pravidlo!", FlashMessageType.INFO);
}
jpAnalyzerStep2TopMain.repaint();
}
@Action
public void previewProductExtracting() {
if (jtfAnalyzerStep3Url.getText().equals("http://") || jtfAnalyzerStep3Url.getText().equals("")) {
displayFlashMessage("CHYBA: Vyplňte prosím URL!", FlashMessageType.ERROR);
} else {
try {
URL url = new URL(jtfAnalyzerStep3Url.getText());
Document doc = Jsoup.parse(url, 5000);
Rules rules = createRulesFromTextFields();
ExtractionResolver extractionResolver = new ExtractionResolver(rules);
//TODO:
try {
Product product = extractionResolver.resolve(doc);
clearFlashMessages();
jepAnalyzerStep3Preview.setText("");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(stringBuilder);
stringBuilder.append("<strong>Název:</strong> ").append(product.getName()).append("<br>");
stringBuilder.append("<strong>Popis:</strong> ").append(product.getDescription()).append("<br>");
stringBuilder.append("<strong>Cena:</strong> ").append(product.getPrice()).append("<br>");
stringBuilder.append("<strong>Cena s DPH:</strong> ").append(product.getPriceDPH()).append("<br>");
stringBuilder.append("<strong>Typ:</strong> ").append(product.getType()).append("<br>");
stringBuilder.append("<strong>Výrobce:</strong> ").append(product.getProducer()).append("<br>");
stringBuilder.append("<br>");
stringBuilder.append("<strong> --- PARAMETRY --- </strong><br>");
for (Map.Entry<String, String> en : product.getParams().entrySet()) {
stringBuilder.append("<strong>").append(en.getKey()).append("</strong>" + " - ").append(en.getValue()).append("<br>");
}
jepAnalyzerStep3Preview.setText(stringBuilder.toString());
} catch (SelectorParseException ex) {
displayFlashMessage(ex.getMessage(), FlashMessageType.ERROR);
}
} catch (MalformedURLException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
@Action
public void previewProductAnalyzing() {
if (jtfAnalyzerStep2Url.getText().equals("http://") || jtfAnalyzerStep2Url.getText().equals("")) {
displayFlashMessage("CHYBA: Vyplňte prosím URL!", FlashMessageType.ERROR);
} else {
try {
URL url = new URL(jtfAnalyzerStep2Url.getText());
Document doc = Jsoup.parse(url, 10000);
List<Condition> conditions = createConditionsFromReflectorBoxes(analyzerStep2Components);
try {
ConditionsResolver resolver = new ConditionsResolver(conditions);
if (resolver.resolve(doc)) {
clearFlashMessages();
displayFlashMessage("Všechny podmínky byly splněny.", FlashMessageType.INFO);
} else {
clearFlashMessages();
List<Condition> failedConditions = resolver.getFailedConditions();
for (int i = 0; i < failedConditions.size(); i++) {
Condition condition = failedConditions.get(i);
String parameters = "";
for (int j = 0; j < condition.getParams().size(); j++) {
parameters += condition.getParams().get(j);
if (j < condition.getParams().size() - 1) {
parameters += ", ";
}
}
String message = condition.getFunctionName() + "( " + parameters + " ) " + "- [ " + condition.getExpectedValue() + " ]";
displayFlashMessage("Nesplněna podmínka: " + message, FlashMessageType.INFO);
}
}
} catch (InstantiationException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
displayFlashMessage("Nastala chyba při vyhodnocování podmínky.", FlashMessageType.ERROR);
} catch (NoSuchMethodException ex) {
Logger.getLogger(AppView.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (IOException ex) {
displayFlashMessage("CHYBA: Nepodařilo se připojit k URL! Zkontrolujte, prosím, zda je adresa platná.", FlashMessageType.ERROR);
}
}
}
public List<Condition> createConditionsFromReflectorBoxes(List<JReflectorBox> boxes) {
List<Condition> list = new ArrayList<Condition>();
for (Iterator<JReflectorBox> it = boxes.iterator(); it.hasNext();) {
JReflectorBox box = it.next();
Condition condition = new Condition(new ContentAnalyzer(), box.getModel().getMethodName(), box.getModel().getExpected(), box.getModel().getParams());
list.add(condition);
}
return list;
}
public Rules createRulesFromTextFields() {
Rules rules = new Rules();
rules.add(BasicProductProperties.NAME, jtfAnalyzerStep3ProductName.getText());
rules.add(BasicProductProperties.DESCRIPTION, jtfAnalyzerStep3ProductDescription.getText());
rules.add(BasicProductProperties.PRICE, jtfAnalyzerStep3ProductPrice.getText());
rules.add(BasicProductProperties.PRICE_DPH, jtfAnalyzerStep3ProductPriceDPH.getText());
rules.add(BasicProductProperties.TYPE, jtfAnalyzerStep3ProductType.getText());
rules.add(BasicProductProperties.PRODUCER, jtfAnalyzerStep3ProductProducer.getText());
rules.add(BasicProductProperties.PARAMETER_NAME, jtfAnalyzerStep3ProductParameterName.getText());
rules.add(BasicProductProperties.PARAMETER_VALUE, jtfAnalyzerStep3ProductParameterValue.getText());
return rules;
}
public TreeMap<String, Integer> getCrawledDomains() {
TreeMap<String, Integer> sortedMap = new TreeMap<String, Integer>();
try {
DbConnector conn = new DbConnector(preferences);
PageRepository pageRepository = new PageRepository(conn.getConnection());
HashMap<String, Integer> map = pageRepository.getCountOfRecordsPerHost();
ValueComparator comparator = new ValueComparator(map);
sortedMap = new TreeMap(comparator);
sortedMap.putAll(map);
} catch (CouchDbConnectionException ex) {
displayFlashMessage("Nepodařilo se připojit k databázi.", FlashMessageType.ERROR);
}
return sortedMap;
}
/**
* Load values from properties and set them into setting fields
*/
public void loadSettings() {
jtfSettingsHost.setText(preferences.get("db_host", DefaultDbParams.HOST.toString()));
jtfSettingsPort.setText(preferences.get("db_port", DefaultDbParams.PORT.toString()));
jtfSettingsDatabase.setText(preferences.get("db_database", DefaultDbParams.DATABASE.toString()));
jtfSettingsUsername.setText(preferences.get("db_username", DefaultDbParams.USERNAME.toString()));
jpfSettingsPassword.setText(preferences.get("db_password", DefaultDbParams.PASSWORD.toString()));
}
/**
* Get values from setting fields and save them into properties
*/
@Action
public void saveSettings() {
clearFlashMessages();
if (jtfSettingsHost.getText().equals("") || jtfSettingsPort.getText().equals("") || jtfSettingsDatabase.getText().equals("")) {
displayFlashMessage("Nejsou nastaveny některé povinné údaje, budou použity výchozí!", FlashMessageType.INFO);
}
String host = jtfSettingsHost.getText().equals("") ? DefaultDbParams.HOST.toString() : jtfSettingsHost.getText();
String port = jtfSettingsPort.getText().isEmpty() ? DefaultDbParams.PORT.toString() : jtfSettingsPort.getText();
String database = jtfSettingsDatabase.getText().isEmpty() ? DefaultDbParams.DATABASE.toString() : jtfSettingsDatabase.getText();
try {
Integer.parseInt(port);
} catch (Exception e) {
displayFlashMessage("Port musí být číslo! Byl nastaven výchozí.", FlashMessageType.ERROR);
port = DefaultDbParams.PORT.toString();
}
jtfSettingsHost.setText(host);
jtfSettingsPort.setText(port);
jtfSettingsDatabase.setText(database);
preferences.put("db_host", host);
preferences.put("db_port", port);
preferences.put("db_database", database);
preferences.put("db_username", jtfSettingsUsername.getText());
preferences.put("db_password", String.valueOf(jpfSettingsPassword.getPassword()));
displayFlashMessage("Nastavení bylo uloženo.", FlashMessageType.SUCCESS);
}
/**
* Creates FlashMessage and displays it
*
* @param message text to display in message
* @param type enum type of message
*/
public void displayFlashMessage(String message, FlashMessageType type) {
ResourceMap resourceMap = getResourceMap();
FlashMessage flashMessage = new FlashMessage(message, type, resourceMap.getIcon("FlashMessage.flashIcons[" + type + "]"));
FlashMessagesDisplayer displayer = FlashMessagesDisplayer.getInstance();
displayer.add(flashMessage);
displayer.repaint();
}
/**
* Removes all FlashMessages from panel and hides him
*/
public void clearFlashMessages() {
FlashMessagesDisplayer displayer = FlashMessagesDisplayer.getInstance();
displayer.removeAll();
displayer.hide();
}
public JLabel getAnalyzerCountOfExtracted() {
return jlbAnalyzerStep4CountOfExtractedValue;
}
public JLabel getAnalyzerCountOfProcessed() {
return jlbAnalyzerStep4CountOfProcessedValue;
}
public JLabel getAnalyzerCountOfTotal() {
return jlbAnalyzerStep4CountOfTotal;
}
public JLabel getCrawlerOutstandingQueries() {
return jlbCrawlerOutstandingQueries;
}
public JLabel getCrawlerResolvedQueriesCount() {
return jlbCrawlerResolvedQueriesCount;
}
public JLabel getCrawlerUnprocessedQueries() {
return jlbCrawlerUnprocessedQueries;
}
/**
* Returns instance of JTextArea for crawler Console
*
* @return JTextArea
*/
public JTextArea getCrawlerConsole() {
return jtaCrawlerConsole;
}
/**
* Returns instance of JTextArea for analyzer Console
*
* @return JTextArea
*/
public JTextArea getAnalyzerConsole() {
return jtaAnalyzerConsole;
}
/**
* Returns instance of JPanel for FlashMessages
*
* @return JPanel
*/
public JPanel getFlashMessagesPanel() {
return jpFlashMessages;
}
/**
* Returns instance of header JPanel
*
* @return JPanel
*/
public JPanel getHeaderPanel() {
return jpHeaderPanel;
}
public Preferences getPreferences() {
return preferences;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jpMainPanel = new javax.swing.JPanel();
jpHeaderPanel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jpFlashMessages = new javax.swing.JPanel();
jlbClearFlashMessages = new javax.swing.JLabel();
jtpTabbedPane = new javax.swing.JTabbedPane();
jpCrawler = new javax.swing.JPanel();
jtaCrawlerFlashMessages = new javax.swing.JTextArea();
jpCrawlerBodyLeft = new javax.swing.JPanel();
jspCrawlerBodyLeft = new javax.swing.JScrollPane();
jlstCrawlerQueue = new javax.swing.JList();
jbtShowAddCrawlerUrlDialog = new javax.swing.JButton();
jbtCrawlerRemoveUrls = new javax.swing.JButton();
jbtCrawlerAddUrlsFromFile = new javax.swing.JButton();
jbtCrawlerRun = new javax.swing.JButton();
jpCrawlerBodyRight = new javax.swing.JPanel();
jsplpCrawlerConsoleSplitPane = new javax.swing.JSplitPane();
jspCrawlerConsole = new javax.swing.JScrollPane();
jtaCrawlerConsole = new javax.swing.JTextArea();
jpCrawlerBodyBottom = new javax.swing.JPanel();
jlbCrawlerResolvedQueriesCount = new javax.swing.JLabel();
jlbCrawlerOutstandingQueries = new javax.swing.JLabel();
jlbCrawlerUnprocessedQueries = new javax.swing.JLabel();
jlbCrawlerResolvedQueriesCountLabel = new javax.swing.JLabel();
jlbCrawlerOutstandingQueriesLabel = new javax.swing.JLabel();
jlbCrawlerUnprocessedQueriesLabel = new javax.swing.JLabel();
jpAnalyzer = new javax.swing.JPanel();
jlbAnalyzerStep = new javax.swing.JLabel();
jpAnalyzerNavigation = new javax.swing.JPanel();
jbtAnalyzerStepPrev = new javax.swing.JButton();
jbtAnalyzerStepNext = new javax.swing.JButton();
jpSettings = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
jlbSettingsHost = new javax.swing.JLabel();
jlbSettingsPort = new javax.swing.JLabel();
jlbSettingsDatabase = new javax.swing.JLabel();
jlbSettingsUsername = new javax.swing.JLabel();
jlbSettingsPassword = new javax.swing.JLabel();
jtfSettingsHost = new javax.swing.JTextField();
jtfSettingsPort = new javax.swing.JTextField();
jtfSettingsUsername = new javax.swing.JTextField();
jtfSettingsDatabase = new javax.swing.JTextField();
jpfSettingsPassword = new javax.swing.JPasswordField();
jButton1 = new javax.swing.JButton();
jmbMenuBar = new javax.swing.JMenuBar();
javax.swing.JMenu fileMenu = new javax.swing.JMenu();
javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
javax.swing.JMenu helpMenu = new javax.swing.JMenu();
javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
jpStatusPanel = new javax.swing.JPanel();
javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
statusMessageLabel = new javax.swing.JLabel();
statusAnimationLabel = new javax.swing.JLabel();
progressBar = new javax.swing.JProgressBar();
jfchCrawlerUrlsChooser = new javax.swing.JFileChooser();
jdCrawlerAddUrl = new javax.swing.JDialog();
jlbCrawlerAddUrlDialog = new javax.swing.JLabel();
jtfCrawlerAddUrl = new javax.swing.JTextField();
jbtCrawlerAddUrl = new javax.swing.JButton();
jpAnalyzerStep1 = new javax.swing.JPanel();
jtaAnalyzerStep1Description = new javax.swing.JTextArea();
jcbAnalyzerStep1SampleConditions = new javax.swing.JComboBox();
jlbAnalyzerStep1SampleConditions = new javax.swing.JLabel();
jcbAnalyzerStep1DomainsToAnalyze = new javax.swing.JComboBox();
jlbAnalyzerStep1DomainsToAnalyze = new javax.swing.JLabel();
jbtAnalyzerStep1LoadDomains = new javax.swing.JButton();
jpAnalyzerStep2 = new javax.swing.JPanel();
jtaAnalyzerStep2TopDescription = new javax.swing.JTextArea();
jspAnalyzerStep2Top = new javax.swing.JScrollPane();
jpAnalyzerStep2TopMain = new javax.swing.JPanel();
jbtAnalyzerStep2TopAddComponent = new javax.swing.JButton();
jbtAnalyzerStep2RemoveLast = new javax.swing.JButton();
jlbAnalyzerStep2Url = new javax.swing.JLabel();
jtfAnalyzerStep2Url = new javax.swing.JTextField();
jlbAnalyzerStep2Preview = new javax.swing.JButton();
jtfAnalyzerStep2PreviewDescription = new javax.swing.JLabel();
jpAnalyzerStep3 = new javax.swing.JPanel();
jlbAnalyzerStep3ProductName = new javax.swing.JLabel();
jtfAnalyzerStep3ProductName = new javax.swing.JTextField();
jlbAnalyzerStep3ProductPrice = new javax.swing.JLabel();
jtfAnalyzerStep3ProductPrice = new javax.swing.JTextField();
jtfAnalyzerStep3ProductDescription = new javax.swing.JTextField();
jlbAnalyzerStep3ProductDescription = new javax.swing.JLabel();
jlbAnalyzerStep3ProductParameterName = new javax.swing.JLabel();
jtfAnalyzerStep3ProductParameterName = new javax.swing.JTextField();
jlbAnalyzerStep3Url = new javax.swing.JLabel();
jtfAnalyzerStep3PreviewDescription = new javax.swing.JLabel();
jtfAnalyzerStep3Url = new javax.swing.JTextField();
jtfAnalyzerStep3Preview = new javax.swing.JButton();
jlbAnalyzerStep3ProductParameterValue = new javax.swing.JLabel();
jtfAnalyzerStep3ProductParameterValue = new javax.swing.JTextField();
jlbAnalyzerStep3ProductPriceDPH = new javax.swing.JLabel();
jtfAnalyzerStep3ProductPriceDPH = new javax.swing.JTextField();
jtaAnalyzerStep3Description = new javax.swing.JEditorPane();
jlbAnalyzerStep3Preview = new javax.swing.JLabel();
jlbAnalyzerStep3ProductType = new javax.swing.JLabel();
jtfAnalyzerStep3ProductType = new javax.swing.JTextField();
jlbAnalyzerStep3ProductProducer = new javax.swing.JLabel();
jtfAnalyzerStep3ProductProducer = new javax.swing.JTextField();
jspAnalyzerStep3Preview = new javax.swing.JScrollPane();
jepAnalyzerStep3Preview = new javax.swing.JEditorPane();
jpAnalyzerStep4 = new javax.swing.JPanel();
jspAnalyzerStep4 = new javax.swing.JSplitPane();
jpAnalyzerStep4Top = new javax.swing.JPanel();
jspAnalyzerStep4Top = new javax.swing.JScrollPane();
jtaAnalyzerConsole = new javax.swing.JTextArea();
jpAnalyzerStep4Bottom = new javax.swing.JPanel();
jlbAnalyzerStep4CountOfExtractedLabel = new javax.swing.JLabel();
jlbAnalyzerStep4CountOfExtractedValue = new javax.swing.JLabel();
jlbAnalyzerStep4CountOfProcessedLabel = new javax.swing.JLabel();
jlbAnalyzerStep4CountOfProcessedValue = new javax.swing.JLabel();
jlbAnalyzerStep4Slash = new javax.swing.JLabel();
jlbAnalyzerStep4CountOfTotal = new javax.swing.JLabel();
jpMainPanel.setName("jpMainPanel"); // NOI18N
jpMainPanel.setPreferredSize(new java.awt.Dimension(800, 527));
jpHeaderPanel.setBorder(null);
jpHeaderPanel.setName("jpHeaderPanel"); // NOI18N
jScrollPane1.setBorder(null);
jScrollPane1.setAlignmentX(2.0F);
jScrollPane1.setName("jScrollPane1"); // NOI18N
jpFlashMessages.setBorder(null);
jpFlashMessages.setName("jpFlashMessages"); // NOI18N
jpFlashMessages.setLayout(new javax.swing.BoxLayout(jpFlashMessages, javax.swing.BoxLayout.PAGE_AXIS));
jScrollPane1.setViewportView(jpFlashMessages);
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(com.github.mefi.jkuuza.app.App.class).getContext().getResourceMap(AppView.class);
jlbClearFlashMessages.setFont(resourceMap.getFont("jlbClearFlashMessages.font")); // NOI18N
jlbClearFlashMessages.setText(resourceMap.getString("jlbClearFlashMessages.text")); // NOI18N
jlbClearFlashMessages.setName("jlbClearFlashMessages"); // NOI18N
jlbClearFlashMessages.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlbClearFlashMessagesMouseClicked(evt);
}
});
org.jdesktop.layout.GroupLayout jpHeaderPanelLayout = new org.jdesktop.layout.GroupLayout(jpHeaderPanel);
jpHeaderPanel.setLayout(jpHeaderPanelLayout);
jpHeaderPanelLayout.setHorizontalGroup(
jpHeaderPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jpHeaderPanelLayout.createSequentialGroup()
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 779, Short.MAX_VALUE)
.add(18, 18, 18)
.add(jlbClearFlashMessages, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
jpHeaderPanelLayout.setVerticalGroup(
jpHeaderPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jlbClearFlashMessages, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 56, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 56, Short.MAX_VALUE)
);
jtpTabbedPane.setName("jtpTabbedPane"); // NOI18N
jpCrawler.setName("jpCrawler"); // NOI18N
jtaCrawlerFlashMessages.setBackground(resourceMap.getColor("jtaCrawlerFlashMessages.background")); // NOI18N
jtaCrawlerFlashMessages.setColumns(20);
jtaCrawlerFlashMessages.setEditable(false);
jtaCrawlerFlashMessages.setLineWrap(true);
jtaCrawlerFlashMessages.setRows(5);
jtaCrawlerFlashMessages.setText(resourceMap.getString("jtaCrawlerFlashMessages.text")); // NOI18N
jtaCrawlerFlashMessages.setWrapStyleWord(true);
jtaCrawlerFlashMessages.setName("jtaCrawlerFlashMessages"); // NOI18N
jpCrawlerBodyLeft.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jpCrawlerBodyLeft.setName("jpCrawlerBodyLeft"); // NOI18N
jspCrawlerBodyLeft.setName("jspCrawlerBodyLeft"); // NOI18N
jlstCrawlerQueue.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "http://example1.com", "http://example2.com", "http://example3.com", "http://example4.com", "http://example5.com" };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
jlstCrawlerQueue.setName("jlstCrawlerQueue"); // NOI18N
jspCrawlerBodyLeft.setViewportView(jlstCrawlerQueue);
javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(com.github.mefi.jkuuza.app.App.class).getContext().getActionMap(AppView.class, this);
jbtShowAddCrawlerUrlDialog.setAction(actionMap.get("showCrawlerUrlDialog")); // NOI18N
jbtShowAddCrawlerUrlDialog.setText(resourceMap.getString("jbtShowAddCrawlerUrlDialog.text")); // NOI18N
jbtShowAddCrawlerUrlDialog.setName("jbtShowAddCrawlerUrlDialog"); // NOI18N
jbtCrawlerRemoveUrls.setAction(actionMap.get("removeSelectedUrlFromCrawlerQueue")); // NOI18N
jbtCrawlerRemoveUrls.setText(resourceMap.getString("jbtCrawlerRemoveUrls.text")); // NOI18N
jbtCrawlerRemoveUrls.setName("jbtCrawlerRemoveUrls"); // NOI18N
jbtCrawlerAddUrlsFromFile.setAction(actionMap.get("loadCrawlerUrlsFromFile")); // NOI18N
jbtCrawlerAddUrlsFromFile.setText(resourceMap.getString("jbtCrawlerAddUrlsFromFile.text")); // NOI18N
jbtCrawlerAddUrlsFromFile.setName("jbtCrawlerAddUrlsFromFile"); // NOI18N
jbtCrawlerRun.setAction(actionMap.get("runCrawler")); // NOI18N
jbtCrawlerRun.setFont(resourceMap.getFont("jbtCrawlerRun.font")); // NOI18N
jbtCrawlerRun.setText(resourceMap.getString("jbtCrawlerRun.text")); // NOI18N
jbtCrawlerRun.setName("jbtCrawlerRun"); // NOI18N
org.jdesktop.layout.GroupLayout jpCrawlerBodyLeftLayout = new org.jdesktop.layout.GroupLayout(jpCrawlerBodyLeft);
jpCrawlerBodyLeft.setLayout(jpCrawlerBodyLeftLayout);
jpCrawlerBodyLeftLayout.setHorizontalGroup(
jpCrawlerBodyLeftLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyLeftLayout.createSequentialGroup()
.addContainerGap()
.add(jpCrawlerBodyLeftLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jbtCrawlerRun, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 297, Short.MAX_VALUE)
.add(jpCrawlerBodyLeftLayout.createSequentialGroup()
.add(jbtShowAddCrawlerUrlDialog, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 95, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtCrawlerRemoveUrls)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtCrawlerAddUrlsFromFile, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 83, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
.add(jpCrawlerBodyLeftLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyLeftLayout.createSequentialGroup()
.addContainerGap()
.add(jspCrawlerBodyLeft, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addContainerGap()))
);
jpCrawlerBodyLeftLayout.linkSize(new java.awt.Component[] {jbtCrawlerAddUrlsFromFile, jbtCrawlerRemoveUrls, jbtShowAddCrawlerUrlDialog}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
jpCrawlerBodyLeftLayout.setVerticalGroup(
jpCrawlerBodyLeftLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyLeftLayout.createSequentialGroup()
.addContainerGap(348, Short.MAX_VALUE)
.add(jpCrawlerBodyLeftLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jbtCrawlerAddUrlsFromFile)
.add(jbtCrawlerRemoveUrls)
.add(jbtShowAddCrawlerUrlDialog))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtCrawlerRun)
.add(23, 23, 23))
.add(jpCrawlerBodyLeftLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyLeftLayout.createSequentialGroup()
.addContainerGap()
.add(jspCrawlerBodyLeft, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.add(101, 101, 101)))
);
jpCrawlerBodyRight.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jpCrawlerBodyRight.setName("jpCrawlerBodyRight"); // NOI18N
jsplpCrawlerConsoleSplitPane.setBorder(null);
jsplpCrawlerConsoleSplitPane.setDividerLocation(200);
jsplpCrawlerConsoleSplitPane.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jsplpCrawlerConsoleSplitPane.setName("jsplpCrawlerConsoleSplitPane"); // NOI18N
jspCrawlerConsole.setBorder(null);
jspCrawlerConsole.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
jspCrawlerConsole.setAutoscrolls(true);
jspCrawlerConsole.setName("jspCrawlerConsole"); // NOI18N
jtaCrawlerConsole.setBackground(resourceMap.getColor("jtaCrawlerConsole.background")); // NOI18N
jtaCrawlerConsole.setColumns(20);
jtaCrawlerConsole.setFont(resourceMap.getFont("jtaCrawlerConsole.font")); // NOI18N
jtaCrawlerConsole.setForeground(resourceMap.getColor("jtaCrawlerConsole.foreground")); // NOI18N
jtaCrawlerConsole.setRows(6);
jtaCrawlerConsole.setText(resourceMap.getString("jtaCrawlerConsole.text")); // NOI18N
jtaCrawlerConsole.setAutoscrolls(true);
jtaCrawlerConsole.setDoubleBuffered(true);
jtaCrawlerConsole.setDragEnabled(true);
jtaCrawlerConsole.setName("jtaCrawlerConsole"); // NOI18N
jspCrawlerConsole.setViewportView(jtaCrawlerConsole);
jsplpCrawlerConsoleSplitPane.setLeftComponent(jspCrawlerConsole);
jpCrawlerBodyBottom.setBorder(null);
jpCrawlerBodyBottom.setName("jpCrawlerBodyBottom"); // NOI18N
jlbCrawlerResolvedQueriesCount.setText(resourceMap.getString("jlbCrawlerResolvedQueriesCount.text")); // NOI18N
jlbCrawlerResolvedQueriesCount.setName("jlbCrawlerResolvedQueriesCount"); // NOI18N
jlbCrawlerOutstandingQueries.setText(resourceMap.getString("jlbCrawlerOutstandingQueries.text")); // NOI18N
jlbCrawlerOutstandingQueries.setName("jlbCrawlerOutstandingQueries"); // NOI18N
jlbCrawlerUnprocessedQueries.setText(resourceMap.getString("jlbCrawlerUnprocessedQueries.text")); // NOI18N
jlbCrawlerUnprocessedQueries.setName("jlbCrawlerUnprocessedQueries"); // NOI18N
jlbCrawlerResolvedQueriesCountLabel.setText(resourceMap.getString("jlbCrawlerResolvedQueriesCountLabel.text")); // NOI18N
jlbCrawlerResolvedQueriesCountLabel.setName("jlbCrawlerResolvedQueriesCountLabel"); // NOI18N
jlbCrawlerOutstandingQueriesLabel.setText(resourceMap.getString("jlbCrawlerOutstandingQueriesLabel.text")); // NOI18N
jlbCrawlerOutstandingQueriesLabel.setName("jlbCrawlerOutstandingQueriesLabel"); // NOI18N
jlbCrawlerUnprocessedQueriesLabel.setText(resourceMap.getString("jlbCrawlerUnprocessedQueriesLabel.text")); // NOI18N
jlbCrawlerUnprocessedQueriesLabel.setName("jlbCrawlerUnprocessedQueriesLabel"); // NOI18N
org.jdesktop.layout.GroupLayout jpCrawlerBodyBottomLayout = new org.jdesktop.layout.GroupLayout(jpCrawlerBodyBottom);
jpCrawlerBodyBottom.setLayout(jpCrawlerBodyBottomLayout);
jpCrawlerBodyBottomLayout.setHorizontalGroup(
jpCrawlerBodyBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyBottomLayout.createSequentialGroup()
.addContainerGap()
.add(jpCrawlerBodyBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jlbCrawlerResolvedQueriesCountLabel)
.add(jlbCrawlerOutstandingQueriesLabel)
.add(jlbCrawlerUnprocessedQueriesLabel))
.add(32, 32, 32)
.add(jpCrawlerBodyBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(jlbCrawlerOutstandingQueries, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jlbCrawlerResolvedQueriesCount, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jlbCrawlerUnprocessedQueries))
.addContainerGap(302, Short.MAX_VALUE))
);
jpCrawlerBodyBottomLayout.setVerticalGroup(
jpCrawlerBodyBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyBottomLayout.createSequentialGroup()
.addContainerGap()
.add(jpCrawlerBodyBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyBottomLayout.createSequentialGroup()
.add(jlbCrawlerResolvedQueriesCount)
.add(12, 12, 12)
.add(jlbCrawlerOutstandingQueries)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jlbCrawlerUnprocessedQueries, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(jpCrawlerBodyBottomLayout.createSequentialGroup()
.add(jlbCrawlerResolvedQueriesCountLabel)
.add(12, 12, 12)
.add(jlbCrawlerOutstandingQueriesLabel))
.add(jpCrawlerBodyBottomLayout.createSequentialGroup()
.add(60, 60, 60)
.add(jlbCrawlerUnprocessedQueriesLabel)))
.addContainerGap(136, Short.MAX_VALUE))
);
jsplpCrawlerConsoleSplitPane.setRightComponent(jpCrawlerBodyBottom);
org.jdesktop.layout.GroupLayout jpCrawlerBodyRightLayout = new org.jdesktop.layout.GroupLayout(jpCrawlerBodyRight);
jpCrawlerBodyRight.setLayout(jpCrawlerBodyRightLayout);
jpCrawlerBodyRightLayout.setHorizontalGroup(
jpCrawlerBodyRightLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jsplpCrawlerConsoleSplitPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 441, Short.MAX_VALUE)
);
jpCrawlerBodyRightLayout.setVerticalGroup(
jpCrawlerBodyRightLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jsplpCrawlerConsoleSplitPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 437, Short.MAX_VALUE)
);
org.jdesktop.layout.GroupLayout jpCrawlerLayout = new org.jdesktop.layout.GroupLayout(jpCrawler);
jpCrawler.setLayout(jpCrawlerLayout);
jpCrawlerLayout.setHorizontalGroup(
jpCrawlerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerLayout.createSequentialGroup()
.addContainerGap()
.add(jpCrawlerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jtaCrawlerFlashMessages, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 714, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jpCrawlerLayout.createSequentialGroup()
.add(jpCrawlerBodyLeft, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpCrawlerBodyRight, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
jpCrawlerLayout.setVerticalGroup(
jpCrawlerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerLayout.createSequentialGroup()
.addContainerGap()
.add(jtaCrawlerFlashMessages, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 41, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(18, 18, 18)
.add(jpCrawlerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpCrawlerBodyRight, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jpCrawlerBodyLeft, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jtpTabbedPane.addTab(resourceMap.getString("jpCrawler.TabConstraints.tabTitle"), jpCrawler); // NOI18N
jpAnalyzer.setName("jpAnalyzer"); // NOI18N
jpAnalyzer.setLayout(new java.awt.BorderLayout());
jlbAnalyzerStep.setText(resourceMap.getString("jlbAnalyzerStep.text")); // NOI18N
jlbAnalyzerStep.setName("jlbAnalyzerStep"); // NOI18N
jpAnalyzer.add(jlbAnalyzerStep, java.awt.BorderLayout.PAGE_START);
jpAnalyzerNavigation.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jpAnalyzerNavigation.setName("jpAnalyzerNavigation"); // NOI18N
jpAnalyzerNavigation.setLayout(new java.awt.GridLayout(1, 0));
jbtAnalyzerStepPrev.setAction(actionMap.get("prevAnalyzerStep")); // NOI18N
jbtAnalyzerStepPrev.setText(resourceMap.getString("jbtAnalyzerStepPrev.text")); // NOI18N
jbtAnalyzerStepPrev.setToolTipText(resourceMap.getString("jbtAnalyzerStepPrev.toolTipText")); // NOI18N
jbtAnalyzerStepPrev.setName("jbtAnalyzerStepPrev"); // NOI18N
jpAnalyzerNavigation.add(jbtAnalyzerStepPrev);
jbtAnalyzerStepNext.setAction(actionMap.get("nextAnalyzerStep")); // NOI18N
jbtAnalyzerStepNext.setText(resourceMap.getString("jbtAnalyzerStepNext.text")); // NOI18N
jbtAnalyzerStepNext.setToolTipText(resourceMap.getString("jbtAnalyzerStepNext.toolTipText")); // NOI18N
jbtAnalyzerStepNext.setName("jbtAnalyzerStepNext"); // NOI18N
jpAnalyzerNavigation.add(jbtAnalyzerStepNext);
jpAnalyzer.add(jpAnalyzerNavigation, java.awt.BorderLayout.PAGE_END);
jtpTabbedPane.addTab(resourceMap.getString("jpAnalyzer.TabConstraints.tabTitle"), jpAnalyzer); // NOI18N
jpSettings.setName("jpSettings"); // NOI18N
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel1.border.title"))); // NOI18N
jPanel1.setName("jPanel1"); // NOI18N
jlbSettingsHost.setText(resourceMap.getString("jlbSettingsHost.text")); // NOI18N
jlbSettingsHost.setName("jlbSettingsHost"); // NOI18N
jlbSettingsPort.setText(resourceMap.getString("jlbSettingsPort.text")); // NOI18N
jlbSettingsPort.setName("jlbSettingsPort"); // NOI18N
jlbSettingsDatabase.setText(resourceMap.getString("jlbSettingsDatabase.text")); // NOI18N
jlbSettingsDatabase.setName("jlbSettingsDatabase"); // NOI18N
jlbSettingsUsername.setText(resourceMap.getString("jlbSettingsUsername.text")); // NOI18N
jlbSettingsUsername.setName("jlbSettingsUsername"); // NOI18N
jlbSettingsPassword.setText(resourceMap.getString("jlbSettingsPassword.text")); // NOI18N
jlbSettingsPassword.setName("jlbSettingsPassword"); // NOI18N
jtfSettingsHost.setText(resourceMap.getString("jtfSettingsHost.text")); // NOI18N
jtfSettingsHost.setName("jtfSettingsHost"); // NOI18N
jtfSettingsPort.setText(resourceMap.getString("jtfSettingsPort.text")); // NOI18N
jtfSettingsPort.setName("jtfSettingsPort"); // NOI18N
jtfSettingsUsername.setText(resourceMap.getString("jtfSettingsUsername.text")); // NOI18N
jtfSettingsUsername.setName("jtfSettingsUsername"); // NOI18N
jtfSettingsDatabase.setText(resourceMap.getString("jtfSettingsDatabase.text")); // NOI18N
jtfSettingsDatabase.setName("jtfSettingsDatabase"); // NOI18N
jpfSettingsPassword.setText(resourceMap.getString("jpfSettingsPassword.text")); // NOI18N
jpfSettingsPassword.setName("jpfSettingsPassword"); // NOI18N
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jlbSettingsHost)
.add(jlbSettingsPort)
.add(jlbSettingsDatabase))
.add(71, 71, 71)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jtfSettingsDatabase, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE)
.add(jtfSettingsPort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE)
.add(jtfSettingsHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE)))
.add(jPanel1Layout.createSequentialGroup()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jlbSettingsUsername)
.add(jlbSettingsPassword))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpfSettingsPassword, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE)
.add(jtfSettingsUsername, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE))))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbSettingsHost)
.add(jtfSettingsHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbSettingsPort)
.add(jtfSettingsPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbSettingsDatabase)
.add(jtfSettingsDatabase, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbSettingsUsername)
.add(jtfSettingsUsername, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbSettingsPassword)
.add(jpfSettingsPassword, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jButton1.setAction(actionMap.get("saveSettings")); // NOI18N
jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
jButton1.setName("jButton1"); // NOI18N
org.jdesktop.layout.GroupLayout jpSettingsLayout = new org.jdesktop.layout.GroupLayout(jpSettings);
jpSettings.setLayout(jpSettingsLayout);
jpSettingsLayout.setHorizontalGroup(
jpSettingsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpSettingsLayout.createSequentialGroup()
.addContainerGap()
.add(jpSettingsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 179, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jpSettingsLayout.setVerticalGroup(
jpSettingsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpSettingsLayout.createSequentialGroup()
.addContainerGap()
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 231, Short.MAX_VALUE)
.add(jButton1)
.addContainerGap())
);
jtpTabbedPane.addTab(resourceMap.getString("jpSettings.TabConstraints.tabTitle"), jpSettings); // NOI18N
org.jdesktop.layout.GroupLayout jpMainPanelLayout = new org.jdesktop.layout.GroupLayout(jpMainPanel);
jpMainPanel.setLayout(jpMainPanelLayout);
jpMainPanelLayout.setHorizontalGroup(
jpMainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jpMainPanelLayout.createSequentialGroup()
.addContainerGap()
.add(jpMainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, jtpTabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 808, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, jpHeaderPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jpMainPanelLayout.setVerticalGroup(
jpMainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpMainPanelLayout.createSequentialGroup()
.addContainerGap()
.add(jpHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jtpTabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 562, Short.MAX_VALUE)
.addContainerGap())
);
jmbMenuBar.setName("jmbMenuBar"); // NOI18N
fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
fileMenu.setName("fileMenu"); // NOI18N
exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
exitMenuItem.setName("exitMenuItem"); // NOI18N
fileMenu.add(exitMenuItem);
jmbMenuBar.add(fileMenu);
helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
helpMenu.setName("helpMenu"); // NOI18N
aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
aboutMenuItem.setName("aboutMenuItem"); // NOI18N
helpMenu.add(aboutMenuItem);
jmbMenuBar.add(helpMenu);
jpStatusPanel.setName("jpStatusPanel"); // NOI18N
statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N
statusMessageLabel.setName("statusMessageLabel"); // NOI18N
statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N
progressBar.setName("progressBar"); // NOI18N
org.jdesktop.layout.GroupLayout jpStatusPanelLayout = new org.jdesktop.layout.GroupLayout(jpStatusPanel);
jpStatusPanel.setLayout(jpStatusPanelLayout);
jpStatusPanelLayout.setHorizontalGroup(
jpStatusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(statusPanelSeparator, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 832, Short.MAX_VALUE)
.add(jpStatusPanelLayout.createSequentialGroup()
.addContainerGap()
.add(statusMessageLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 648, Short.MAX_VALUE)
.add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(statusAnimationLabel)
.addContainerGap())
);
jpStatusPanelLayout.setVerticalGroup(
jpStatusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpStatusPanelLayout.createSequentialGroup()
.add(statusPanelSeparator, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jpStatusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(statusMessageLabel)
.add(statusAnimationLabel)
.add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(3, 3, 3))
);
jfchCrawlerUrlsChooser.setName("jfchCrawlerUrlsChooser"); // NOI18N
jdCrawlerAddUrl.setName("jdCrawlerAddUrl"); // NOI18N
jlbCrawlerAddUrlDialog.setText(resourceMap.getString("jlbCrawlerAddUrlDialog.text")); // NOI18N
jlbCrawlerAddUrlDialog.setName("jlbCrawlerAddUrlDialog"); // NOI18N
jtfCrawlerAddUrl.setText(resourceMap.getString("jtfCrawlerAddUrl.text")); // NOI18N
jtfCrawlerAddUrl.setName("jtfCrawlerAddUrl"); // NOI18N
jtfCrawlerAddUrl.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jtfCrawlerAddUrlKeyReleased(evt);
}
});
jbtCrawlerAddUrl.setAction(actionMap.get("loadCrawlerUrlFromDialog")); // NOI18N
jbtCrawlerAddUrl.setText(resourceMap.getString("jbtCrawlerAddUrl.text")); // NOI18N
jbtCrawlerAddUrl.setName("jbtCrawlerAddUrl"); // NOI18N
org.jdesktop.layout.GroupLayout jdCrawlerAddUrlLayout = new org.jdesktop.layout.GroupLayout(jdCrawlerAddUrl.getContentPane());
jdCrawlerAddUrl.getContentPane().setLayout(jdCrawlerAddUrlLayout);
jdCrawlerAddUrlLayout.setHorizontalGroup(
jdCrawlerAddUrlLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jdCrawlerAddUrlLayout.createSequentialGroup()
.add(jdCrawlerAddUrlLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jdCrawlerAddUrlLayout.createSequentialGroup()
.addContainerGap()
.add(jlbCrawlerAddUrlDialog)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jtfCrawlerAddUrl, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 377, Short.MAX_VALUE))
.add(jdCrawlerAddUrlLayout.createSequentialGroup()
.add(182, 182, 182)
.add(jbtCrawlerAddUrl)))
.addContainerGap())
);
jdCrawlerAddUrlLayout.setVerticalGroup(
jdCrawlerAddUrlLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jdCrawlerAddUrlLayout.createSequentialGroup()
.addContainerGap()
.add(jdCrawlerAddUrlLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbCrawlerAddUrlDialog)
.add(jtfCrawlerAddUrl, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtCrawlerAddUrl)
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jpAnalyzerStep1.setName("jpAnalyzerStep1"); // NOI18N
jtaAnalyzerStep1Description.setColumns(20);
jtaAnalyzerStep1Description.setLineWrap(true);
jtaAnalyzerStep1Description.setRows(5);
jtaAnalyzerStep1Description.setText(resourceMap.getString("jtaAnalyzerStep1Description.text")); // NOI18N
jtaAnalyzerStep1Description.setWrapStyleWord(true);
jtaAnalyzerStep1Description.setName("jtaAnalyzerStep1Description"); // NOI18N
jcbAnalyzerStep1SampleConditions.setName("jcbAnalyzerStep1SampleConditions"); // NOI18N
jcbAnalyzerStep1SampleConditions.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jcbAnalyzerStep1SampleConditionsActionPerformed(evt);
}
});
jlbAnalyzerStep1SampleConditions.setText(resourceMap.getString("jlbAnalyzerStep1SampleConditions.text")); // NOI18N
jlbAnalyzerStep1SampleConditions.setName("jlbAnalyzerStep1SampleConditions"); // NOI18N
jcbAnalyzerStep1DomainsToAnalyze.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-" }));
jcbAnalyzerStep1DomainsToAnalyze.setName("jcbAnalyzerStep1DomainsToAnalyze"); // NOI18N
jlbAnalyzerStep1DomainsToAnalyze.setText(resourceMap.getString("jlbAnalyzerStep1DomainsToAnalyze.text")); // NOI18N
jlbAnalyzerStep1DomainsToAnalyze.setName("jlbAnalyzerStep1DomainsToAnalyze"); // NOI18N
jbtAnalyzerStep1LoadDomains.setAction(actionMap.get("initAnalyzerDomainsToAnalyze")); // NOI18N
jbtAnalyzerStep1LoadDomains.setText(resourceMap.getString("jbtAnalyzerStep1LoadDomains.text")); // NOI18N
jbtAnalyzerStep1LoadDomains.setName("jbtAnalyzerStep1LoadDomains"); // NOI18N
org.jdesktop.layout.GroupLayout jpAnalyzerStep1Layout = new org.jdesktop.layout.GroupLayout(jpAnalyzerStep1);
jpAnalyzerStep1.setLayout(jpAnalyzerStep1Layout);
jpAnalyzerStep1Layout.setHorizontalGroup(
jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep1Layout.createSequentialGroup()
.addContainerGap()
.add(jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep1Layout.createSequentialGroup()
.add(jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jlbAnalyzerStep1SampleConditions)
.add(jlbAnalyzerStep1DomainsToAnalyze))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(jcbAnalyzerStep1SampleConditions, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jcbAnalyzerStep1DomainsToAnalyze, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 235, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtAnalyzerStep1LoadDomains))
.add(org.jdesktop.layout.GroupLayout.TRAILING, jtaAnalyzerStep1Description, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 494, Short.MAX_VALUE))
.addContainerGap())
);
jpAnalyzerStep1Layout.setVerticalGroup(
jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep1Layout.createSequentialGroup()
.add(jtaAnalyzerStep1Description, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 39, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jcbAnalyzerStep1DomainsToAnalyze, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep1DomainsToAnalyze)
.add(jbtAnalyzerStep1LoadDomains))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jpAnalyzerStep1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jcbAnalyzerStep1SampleConditions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep1SampleConditions))
.addContainerGap(250, Short.MAX_VALUE))
);
jpAnalyzerStep2.setName("jpAnalyzerStep2"); // NOI18N
jpAnalyzerStep2.setPreferredSize(new java.awt.Dimension(421, 321));
jtaAnalyzerStep2TopDescription.setColumns(20);
jtaAnalyzerStep2TopDescription.setEditable(false);
jtaAnalyzerStep2TopDescription.setLineWrap(true);
jtaAnalyzerStep2TopDescription.setRows(5);
jtaAnalyzerStep2TopDescription.setText(resourceMap.getString("jtaAnalyzerStep2TopDescription.text")); // NOI18N
jtaAnalyzerStep2TopDescription.setWrapStyleWord(true);
jtaAnalyzerStep2TopDescription.setName("jtaAnalyzerStep2TopDescription"); // NOI18N
jspAnalyzerStep2Top.setName("jspAnalyzerStep2Top"); // NOI18N
jpAnalyzerStep2TopMain.setBorder(null);
jpAnalyzerStep2TopMain.setName("jpAnalyzerStep2TopMain"); // NOI18N
jpAnalyzerStep2TopMain.setLayout(new java.awt.GridLayout(0, 1));
jspAnalyzerStep2Top.setViewportView(jpAnalyzerStep2TopMain);
jbtAnalyzerStep2TopAddComponent.setAction(actionMap.get("addNextReflectorComponent")); // NOI18N
jbtAnalyzerStep2TopAddComponent.setText(resourceMap.getString("jbtAnalyzerStep2TopAddComponent.text")); // NOI18N
jbtAnalyzerStep2TopAddComponent.setName("jbtAnalyzerStep2TopAddComponent"); // NOI18N
jbtAnalyzerStep2RemoveLast.setAction(actionMap.get("removeLastReflectorComponent")); // NOI18N
jbtAnalyzerStep2RemoveLast.setText(resourceMap.getString("jbtAnalyzerStep2RemoveLast.text")); // NOI18N
jbtAnalyzerStep2RemoveLast.setName("jbtAnalyzerStep2RemoveLast"); // NOI18N
jlbAnalyzerStep2Url.setText(resourceMap.getString("jlbAnalyzerStep2Url.text")); // NOI18N
jlbAnalyzerStep2Url.setName("jlbAnalyzerStep2Url"); // NOI18N
jtfAnalyzerStep2Url.setText(resourceMap.getString("jtfAnalyzerStep2Url.text")); // NOI18N
jtfAnalyzerStep2Url.setName("jtfAnalyzerStep2Url"); // NOI18N
jlbAnalyzerStep2Preview.setAction(actionMap.get("previewProductAnalyzing")); // NOI18N
jlbAnalyzerStep2Preview.setText(resourceMap.getString("jlbAnalyzerStep2Preview.text")); // NOI18N
jlbAnalyzerStep2Preview.setName("jlbAnalyzerStep2Preview"); // NOI18N
jtfAnalyzerStep2PreviewDescription.setText(resourceMap.getString("jtfAnalyzerStep2PreviewDescription.text")); // NOI18N
jtfAnalyzerStep2PreviewDescription.setName("jtfAnalyzerStep2PreviewDescription"); // NOI18N
org.jdesktop.layout.GroupLayout jpAnalyzerStep2Layout = new org.jdesktop.layout.GroupLayout(jpAnalyzerStep2);
jpAnalyzerStep2.setLayout(jpAnalyzerStep2Layout);
jpAnalyzerStep2Layout.setHorizontalGroup(
jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep2Layout.createSequentialGroup()
.add(jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jpAnalyzerStep2Layout.createSequentialGroup()
.addContainerGap()
.add(jbtAnalyzerStep2TopAddComponent, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtAnalyzerStep2RemoveLast, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 154, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(org.jdesktop.layout.GroupLayout.TRAILING, jpAnalyzerStep2Layout.createSequentialGroup()
.addContainerGap()
.add(jlbAnalyzerStep2Url)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep2Layout.createSequentialGroup()
.add(jtfAnalyzerStep2Url, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 286, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jlbAnalyzerStep2Preview))
.add(jtfAnalyzerStep2PreviewDescription)))
.add(jpAnalyzerStep2Layout.createSequentialGroup()
.add(12, 12, 12)
.add(jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jtaAnalyzerStep2TopDescription)
.add(jspAnalyzerStep2Top, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE))))
.addContainerGap())
);
jpAnalyzerStep2Layout.setVerticalGroup(
jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep2Layout.createSequentialGroup()
.add(jtaAnalyzerStep2TopDescription, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 39, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jspAnalyzerStep2Top, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 166, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jbtAnalyzerStep2TopAddComponent)
.add(jbtAnalyzerStep2RemoveLast))
.add(8, 8, 8)
.add(jpAnalyzerStep2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep2Url, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep2Preview)
.add(jlbAnalyzerStep2Url))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jtfAnalyzerStep2PreviewDescription)
.addContainerGap())
);
jpAnalyzerStep3.setName("jpAnalyzerStep3"); // NOI18N
jlbAnalyzerStep3ProductName.setFont(resourceMap.getFont("jlbAnalyzerStep3ProductName.font")); // NOI18N
jlbAnalyzerStep3ProductName.setText(resourceMap.getString("jlbAnalyzerStep3ProductName.text")); // NOI18N
jlbAnalyzerStep3ProductName.setName("jlbAnalyzerStep3ProductName"); // NOI18N
jtfAnalyzerStep3ProductName.setText(resourceMap.getString("jtfAnalyzerStep3ProductName.text")); // NOI18N
jtfAnalyzerStep3ProductName.setName("jtfAnalyzerStep3ProductName"); // NOI18N
jlbAnalyzerStep3ProductPrice.setFont(resourceMap.getFont("jlbAnalyzerStep3ProductPrice.font")); // NOI18N
jlbAnalyzerStep3ProductPrice.setText(resourceMap.getString("jlbAnalyzerStep3ProductPrice.text")); // NOI18N
jlbAnalyzerStep3ProductPrice.setName("jlbAnalyzerStep3ProductPrice"); // NOI18N
jtfAnalyzerStep3ProductPrice.setText(resourceMap.getString("jtfAnalyzerStep3ProductPrice.text")); // NOI18N
jtfAnalyzerStep3ProductPrice.setName("jtfAnalyzerStep3ProductPrice"); // NOI18N
jtfAnalyzerStep3ProductDescription.setText(resourceMap.getString("jtfAnalyzerStep3ProductDescription.text")); // NOI18N
jtfAnalyzerStep3ProductDescription.setName("jtfAnalyzerStep3ProductDescription"); // NOI18N
jlbAnalyzerStep3ProductDescription.setText(resourceMap.getString("jlbAnalyzerStep3ProductDescription.text")); // NOI18N
jlbAnalyzerStep3ProductDescription.setName("jlbAnalyzerStep3ProductDescription"); // NOI18N
jlbAnalyzerStep3ProductParameterName.setText(resourceMap.getString("jlbAnalyzerStep3ProductParameterName.text")); // NOI18N
jlbAnalyzerStep3ProductParameterName.setName("jlbAnalyzerStep3ProductParameterName"); // NOI18N
jtfAnalyzerStep3ProductParameterName.setText(resourceMap.getString("jtfAnalyzerStep3ProductParameterName.text")); // NOI18N
jtfAnalyzerStep3ProductParameterName.setName("jtfAnalyzerStep3ProductParameterName"); // NOI18N
jlbAnalyzerStep3Url.setText(resourceMap.getString("jlbAnalyzerStep3Url.text")); // NOI18N
jlbAnalyzerStep3Url.setName("jlbAnalyzerStep3Url"); // NOI18N
jtfAnalyzerStep3PreviewDescription.setText(resourceMap.getString("jtfAnalyzerStep3PreviewDescription.text")); // NOI18N
jtfAnalyzerStep3PreviewDescription.setName("jtfAnalyzerStep3PreviewDescription"); // NOI18N
jtfAnalyzerStep3Url.setText(resourceMap.getString("jtfAnalyzerStep3Url.text")); // NOI18N
jtfAnalyzerStep3Url.setName("jtfAnalyzerStep3Url"); // NOI18N
jtfAnalyzerStep3Preview.setAction(actionMap.get("previewProductExtracting")); // NOI18N
jtfAnalyzerStep3Preview.setText(resourceMap.getString("jtfAnalyzerStep3Preview.text")); // NOI18N
jtfAnalyzerStep3Preview.setName("jtfAnalyzerStep3Preview"); // NOI18N
jlbAnalyzerStep3ProductParameterValue.setText(resourceMap.getString("jlbAnalyzerStep3ProductParameterValue.text")); // NOI18N
jlbAnalyzerStep3ProductParameterValue.setName("jlbAnalyzerStep3ProductParameterValue"); // NOI18N
jtfAnalyzerStep3ProductParameterValue.setText(resourceMap.getString("jtfAnalyzerStep3ProductParameterValue.text")); // NOI18N
jtfAnalyzerStep3ProductParameterValue.setName("jtfAnalyzerStep3ProductParameterValue"); // NOI18N
jlbAnalyzerStep3ProductPriceDPH.setText(resourceMap.getString("jlbAnalyzerStep3ProductPriceDPH.text")); // NOI18N
jlbAnalyzerStep3ProductPriceDPH.setName("jlbAnalyzerStep3ProductPriceDPH"); // NOI18N
jtfAnalyzerStep3ProductPriceDPH.setText(resourceMap.getString("jtfAnalyzerStep3ProductPriceDPH.text")); // NOI18N
jtfAnalyzerStep3ProductPriceDPH.setName("jtfAnalyzerStep3ProductPriceDPH"); // NOI18N
jtaAnalyzerStep3Description.setBackground(resourceMap.getColor("jtaAnalyzerStep3Description.background")); // NOI18N
jtaAnalyzerStep3Description.setContentType(resourceMap.getString("jtaAnalyzerStep3Description.contentType")); // NOI18N
jtaAnalyzerStep3Description.setText(resourceMap.getString("jtaAnalyzerStep3Description.text")); // NOI18N
jtaAnalyzerStep3Description.setName("jtaAnalyzerStep3Description"); // NOI18N
jlbAnalyzerStep3Preview.setText(resourceMap.getString("jlbAnalyzerStep3Preview.text")); // NOI18N
jlbAnalyzerStep3Preview.setName("jlbAnalyzerStep3Preview"); // NOI18N
jlbAnalyzerStep3ProductType.setText(resourceMap.getString("jlbAnalyzerStep3ProductType.text")); // NOI18N
jlbAnalyzerStep3ProductType.setName("jlbAnalyzerStep3ProductType"); // NOI18N
jtfAnalyzerStep3ProductType.setText(resourceMap.getString("jtfAnalyzerStep3ProductType.text")); // NOI18N
jtfAnalyzerStep3ProductType.setName("jtfAnalyzerStep3ProductType"); // NOI18N
jlbAnalyzerStep3ProductProducer.setText(resourceMap.getString("jlbAnalyzerStep3ProductProducer.text")); // NOI18N
jlbAnalyzerStep3ProductProducer.setName("jlbAnalyzerStep3ProductProducer"); // NOI18N
jtfAnalyzerStep3ProductProducer.setText(resourceMap.getString("jtfAnalyzerStep3ProductProducer.text")); // NOI18N
jtfAnalyzerStep3ProductProducer.setName("jtfAnalyzerStep3ProductProducer"); // NOI18N
jspAnalyzerStep3Preview.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jspAnalyzerStep3Preview.setName("jspAnalyzerStep3Preview"); // NOI18N
jepAnalyzerStep3Preview.setContentType(resourceMap.getString("jepAnalyzerStep3Preview.contentType")); // NOI18N
jepAnalyzerStep3Preview.setName("jepAnalyzerStep3Preview"); // NOI18N
jspAnalyzerStep3Preview.setViewportView(jepAnalyzerStep3Preview);
org.jdesktop.layout.GroupLayout jpAnalyzerStep3Layout = new org.jdesktop.layout.GroupLayout(jpAnalyzerStep3);
jpAnalyzerStep3.setLayout(jpAnalyzerStep3Layout);
jpAnalyzerStep3Layout.setHorizontalGroup(
jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.addContainerGap()
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jtaAnalyzerStep3Description, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 717, Short.MAX_VALUE)
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jlbAnalyzerStep3ProductProducer)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jlbAnalyzerStep3ProductPrice)
.add(jlbAnalyzerStep3ProductName)
.add(jlbAnalyzerStep3ProductPriceDPH)
.add(jlbAnalyzerStep3ProductParameterValue)))
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.add(20, 20, 20)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jlbAnalyzerStep3ProductParameterName)
.add(jlbAnalyzerStep3ProductDescription)
.add(jlbAnalyzerStep3ProductType)))))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jtfAnalyzerStep3ProductParameterValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(jtfAnalyzerStep3ProductParameterName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jtfAnalyzerStep3ProductDescription, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(jtfAnalyzerStep3ProductPrice, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(jtfAnalyzerStep3ProductName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(jtfAnalyzerStep3ProductPriceDPH, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(jtfAnalyzerStep3ProductType, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
.add(jtfAnalyzerStep3ProductProducer, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)))
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.add(jlbAnalyzerStep3Url)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jtfAnalyzerStep3Url, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 606, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jtfAnalyzerStep3Preview))))
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.add(100, 100, 100)
.add(jlbAnalyzerStep3Preview)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jspAnalyzerStep3Preview, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE))
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.addContainerGap()
.add(jtfAnalyzerStep3PreviewDescription)))
.addContainerGap())
);
jpAnalyzerStep3Layout.setVerticalGroup(
jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep3Layout.createSequentialGroup()
.add(jtaAnalyzerStep3Description, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep3ProductName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep3ProductName))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbAnalyzerStep3ProductPrice)
.add(jtfAnalyzerStep3ProductPrice, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jlbAnalyzerStep3ProductPriceDPH)
.add(jtfAnalyzerStep3ProductPriceDPH, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep3ProductDescription, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep3ProductDescription))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep3ProductParameterName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep3ProductParameterName))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep3ProductParameterValue, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep3ProductParameterValue))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep3ProductType, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep3ProductType))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jtfAnalyzerStep3ProductProducer, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jlbAnalyzerStep3ProductProducer))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jspAnalyzerStep3Preview, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE)
.add(jlbAnalyzerStep3Preview))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jpAnalyzerStep3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbAnalyzerStep3Url)
.add(jtfAnalyzerStep3Preview)
.add(jtfAnalyzerStep3Url, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jtfAnalyzerStep3PreviewDescription)
.addContainerGap())
);
jpAnalyzerStep4.setName("jpAnalyzerStep4"); // NOI18N
jspAnalyzerStep4.setDividerLocation(200);
jspAnalyzerStep4.setDividerSize(10);
jspAnalyzerStep4.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jspAnalyzerStep4.setName("jspAnalyzerStep4"); // NOI18N
jpAnalyzerStep4Top.setName("jpAnalyzerStep4Top"); // NOI18N
jspAnalyzerStep4Top.setName("jspAnalyzerStep4Top"); // NOI18N
jtaAnalyzerConsole.setBackground(resourceMap.getColor("jtaAnalyzerConsole.background")); // NOI18N
jtaAnalyzerConsole.setColumns(20);
jtaAnalyzerConsole.setEditable(false);
jtaAnalyzerConsole.setFont(resourceMap.getFont("jtaAnalyzerConsole.font")); // NOI18N
jtaAnalyzerConsole.setForeground(resourceMap.getColor("jtaAnalyzerConsole.foreground")); // NOI18N
jtaAnalyzerConsole.setRows(5);
jtaAnalyzerConsole.setName("jtaAnalyzerConsole"); // NOI18N
jspAnalyzerStep4Top.setViewportView(jtaAnalyzerConsole);
org.jdesktop.layout.GroupLayout jpAnalyzerStep4TopLayout = new org.jdesktop.layout.GroupLayout(jpAnalyzerStep4Top);
jpAnalyzerStep4Top.setLayout(jpAnalyzerStep4TopLayout);
jpAnalyzerStep4TopLayout.setHorizontalGroup(
jpAnalyzerStep4TopLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jspAnalyzerStep4Top, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 610, Short.MAX_VALUE)
);
jpAnalyzerStep4TopLayout.setVerticalGroup(
jpAnalyzerStep4TopLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jspAnalyzerStep4Top, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
);
jspAnalyzerStep4.setTopComponent(jpAnalyzerStep4Top);
jpAnalyzerStep4Bottom.setName("jpAnalyzerStep4Bottom"); // NOI18N
jlbAnalyzerStep4CountOfExtractedLabel.setText(resourceMap.getString("jlbAnalyzerStep4CountOfExtractedLabel.text")); // NOI18N
jlbAnalyzerStep4CountOfExtractedLabel.setName("jlbAnalyzerStep4CountOfExtractedLabel"); // NOI18N
jlbAnalyzerStep4CountOfExtractedValue.setText(resourceMap.getString("jlbAnalyzerStep4CountOfExtractedValue.text")); // NOI18N
jlbAnalyzerStep4CountOfExtractedValue.setName("jlbAnalyzerStep4CountOfExtractedValue"); // NOI18N
jlbAnalyzerStep4CountOfProcessedLabel.setText(resourceMap.getString("jlbAnalyzerStep4CountOfProcessedLabel.text")); // NOI18N
jlbAnalyzerStep4CountOfProcessedLabel.setName("jlbAnalyzerStep4CountOfProcessedLabel"); // NOI18N
jlbAnalyzerStep4CountOfProcessedValue.setText(resourceMap.getString("jlbAnalyzerStep4CountOfProcessedValue.text")); // NOI18N
jlbAnalyzerStep4CountOfProcessedValue.setName("jlbAnalyzerStep4CountOfProcessedValue"); // NOI18N
jlbAnalyzerStep4Slash.setText(resourceMap.getString("jlbAnalyzerStep4Slash.text")); // NOI18N
jlbAnalyzerStep4Slash.setName("jlbAnalyzerStep4Slash"); // NOI18N
jlbAnalyzerStep4CountOfTotal.setText(resourceMap.getString("jlbAnalyzerStep4CountOfTotal.text")); // NOI18N
jlbAnalyzerStep4CountOfTotal.setName("jlbAnalyzerStep4CountOfTotal"); // NOI18N
org.jdesktop.layout.GroupLayout jpAnalyzerStep4BottomLayout = new org.jdesktop.layout.GroupLayout(jpAnalyzerStep4Bottom);
jpAnalyzerStep4Bottom.setLayout(jpAnalyzerStep4BottomLayout);
jpAnalyzerStep4BottomLayout.setHorizontalGroup(
jpAnalyzerStep4BottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jpAnalyzerStep4BottomLayout.createSequentialGroup()
.add(jpAnalyzerStep4BottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep4BottomLayout.createSequentialGroup()
.add(jlbAnalyzerStep4CountOfProcessedLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 166, Short.MAX_VALUE)
.add(18, 18, 18))
.add(jpAnalyzerStep4BottomLayout.createSequentialGroup()
.add(jlbAnalyzerStep4CountOfExtractedLabel)
.add(45, 45, 45)))
.add(jpAnalyzerStep4BottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, jlbAnalyzerStep4CountOfExtractedValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, jlbAnalyzerStep4CountOfProcessedValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jlbAnalyzerStep4Slash)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jlbAnalyzerStep4CountOfTotal)
.add(390, 390, 390))
);
jpAnalyzerStep4BottomLayout.setVerticalGroup(
jpAnalyzerStep4BottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep4BottomLayout.createSequentialGroup()
.add(jpAnalyzerStep4BottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbAnalyzerStep4CountOfProcessedLabel)
.add(jlbAnalyzerStep4CountOfProcessedValue)
.add(jlbAnalyzerStep4Slash)
.add(jlbAnalyzerStep4CountOfTotal))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jpAnalyzerStep4BottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jlbAnalyzerStep4CountOfExtractedLabel)
.add(jlbAnalyzerStep4CountOfExtractedValue))
.addContainerGap(31, Short.MAX_VALUE))
);
jspAnalyzerStep4.setRightComponent(jpAnalyzerStep4Bottom);
org.jdesktop.layout.GroupLayout jpAnalyzerStep4Layout = new org.jdesktop.layout.GroupLayout(jpAnalyzerStep4);
jpAnalyzerStep4.setLayout(jpAnalyzerStep4Layout);
jpAnalyzerStep4Layout.setHorizontalGroup(
jpAnalyzerStep4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep4Layout.createSequentialGroup()
.addContainerGap()
.add(jspAnalyzerStep4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 610, Short.MAX_VALUE)
.addContainerGap())
);
jpAnalyzerStep4Layout.setVerticalGroup(
jpAnalyzerStep4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jpAnalyzerStep4Layout.createSequentialGroup()
.addContainerGap()
.add(jspAnalyzerStep4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 289, Short.MAX_VALUE)
.addContainerGap())
);
setComponent(jpMainPanel);
setMenuBar(jmbMenuBar);
setStatusBar(jpStatusPanel);
}// </editor-fold>//GEN-END:initComponents
/**
* Returns AppView singleton
*
* @return AppView
*/
public static synchronized AppView getInstance() {
if (appView == null) {
appView = new AppView(App.getApplication());
}
return appView;
}
@Override
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
/**
* handles mouse click event
*
* @param evt
*/
private void jlbClearFlashMessagesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jlbClearFlashMessagesMouseClicked
clearFlashMessages();
}//GEN-LAST:event_jlbClearFlashMessagesMouseClicked
private void jtfCrawlerAddUrlKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtfCrawlerAddUrlKeyReleased
// TODO add your handling code here:
}//GEN-LAST:event_jtfCrawlerAddUrlKeyReleased
private void jcbAnalyzerStep1SampleConditionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbAnalyzerStep1SampleConditionsActionPerformed
jpAnalyzerStep2TopMain.removeAll();
analyzerStep2Components.clear();
analyzerLoadConditionsLocked = false;
}//GEN-LAST:event_jcbAnalyzerStep1SampleConditionsActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jbtAnalyzerStep1LoadDomains;
private javax.swing.JButton jbtAnalyzerStep2RemoveLast;
private javax.swing.JButton jbtAnalyzerStep2TopAddComponent;
private javax.swing.JButton jbtAnalyzerStepNext;
private javax.swing.JButton jbtAnalyzerStepPrev;
private javax.swing.JButton jbtCrawlerAddUrl;
private javax.swing.JButton jbtCrawlerAddUrlsFromFile;
private javax.swing.JButton jbtCrawlerRemoveUrls;
private javax.swing.JButton jbtCrawlerRun;
private javax.swing.JButton jbtShowAddCrawlerUrlDialog;
private javax.swing.JComboBox jcbAnalyzerStep1DomainsToAnalyze;
private javax.swing.JComboBox jcbAnalyzerStep1SampleConditions;
private javax.swing.JDialog jdCrawlerAddUrl;
private javax.swing.JEditorPane jepAnalyzerStep3Preview;
private javax.swing.JFileChooser jfchCrawlerUrlsChooser;
private javax.swing.JLabel jlbAnalyzerStep;
private javax.swing.JLabel jlbAnalyzerStep1DomainsToAnalyze;
private javax.swing.JLabel jlbAnalyzerStep1SampleConditions;
private javax.swing.JButton jlbAnalyzerStep2Preview;
private javax.swing.JLabel jlbAnalyzerStep2Url;
private javax.swing.JLabel jlbAnalyzerStep3Preview;
private javax.swing.JLabel jlbAnalyzerStep3ProductDescription;
private javax.swing.JLabel jlbAnalyzerStep3ProductName;
private javax.swing.JLabel jlbAnalyzerStep3ProductParameterName;
private javax.swing.JLabel jlbAnalyzerStep3ProductParameterValue;
private javax.swing.JLabel jlbAnalyzerStep3ProductPrice;
private javax.swing.JLabel jlbAnalyzerStep3ProductPriceDPH;
private javax.swing.JLabel jlbAnalyzerStep3ProductProducer;
private javax.swing.JLabel jlbAnalyzerStep3ProductType;
private javax.swing.JLabel jlbAnalyzerStep3Url;
private javax.swing.JLabel jlbAnalyzerStep4CountOfExtractedLabel;
private javax.swing.JLabel jlbAnalyzerStep4CountOfExtractedValue;
private javax.swing.JLabel jlbAnalyzerStep4CountOfProcessedLabel;
private javax.swing.JLabel jlbAnalyzerStep4CountOfProcessedValue;
private javax.swing.JLabel jlbAnalyzerStep4CountOfTotal;
private javax.swing.JLabel jlbAnalyzerStep4Slash;
private javax.swing.JLabel jlbClearFlashMessages;
private javax.swing.JLabel jlbCrawlerAddUrlDialog;
private javax.swing.JLabel jlbCrawlerOutstandingQueries;
private javax.swing.JLabel jlbCrawlerOutstandingQueriesLabel;
private javax.swing.JLabel jlbCrawlerResolvedQueriesCount;
private javax.swing.JLabel jlbCrawlerResolvedQueriesCountLabel;
private javax.swing.JLabel jlbCrawlerUnprocessedQueries;
private javax.swing.JLabel jlbCrawlerUnprocessedQueriesLabel;
private javax.swing.JLabel jlbSettingsDatabase;
private javax.swing.JLabel jlbSettingsHost;
private javax.swing.JLabel jlbSettingsPassword;
private javax.swing.JLabel jlbSettingsPort;
private javax.swing.JLabel jlbSettingsUsername;
private javax.swing.JList jlstCrawlerQueue;
private javax.swing.JMenuBar jmbMenuBar;
private javax.swing.JPanel jpAnalyzer;
private javax.swing.JPanel jpAnalyzerNavigation;
private javax.swing.JPanel jpAnalyzerStep1;
private javax.swing.JPanel jpAnalyzerStep2;
private javax.swing.JPanel jpAnalyzerStep2TopMain;
private javax.swing.JPanel jpAnalyzerStep3;
private javax.swing.JPanel jpAnalyzerStep4;
private javax.swing.JPanel jpAnalyzerStep4Bottom;
private javax.swing.JPanel jpAnalyzerStep4Top;
private javax.swing.JPanel jpCrawler;
private javax.swing.JPanel jpCrawlerBodyBottom;
private javax.swing.JPanel jpCrawlerBodyLeft;
private javax.swing.JPanel jpCrawlerBodyRight;
private javax.swing.JPanel jpFlashMessages;
private javax.swing.JPanel jpHeaderPanel;
private javax.swing.JPanel jpMainPanel;
private javax.swing.JPanel jpSettings;
private javax.swing.JPanel jpStatusPanel;
private javax.swing.JPasswordField jpfSettingsPassword;
private javax.swing.JScrollPane jspAnalyzerStep2Top;
private javax.swing.JScrollPane jspAnalyzerStep3Preview;
private javax.swing.JSplitPane jspAnalyzerStep4;
private javax.swing.JScrollPane jspAnalyzerStep4Top;
private javax.swing.JScrollPane jspCrawlerBodyLeft;
private javax.swing.JScrollPane jspCrawlerConsole;
private javax.swing.JSplitPane jsplpCrawlerConsoleSplitPane;
private javax.swing.JTextArea jtaAnalyzerConsole;
private javax.swing.JTextArea jtaAnalyzerStep1Description;
private javax.swing.JTextArea jtaAnalyzerStep2TopDescription;
private javax.swing.JEditorPane jtaAnalyzerStep3Description;
private javax.swing.JTextArea jtaCrawlerConsole;
private javax.swing.JTextArea jtaCrawlerFlashMessages;
private javax.swing.JLabel jtfAnalyzerStep2PreviewDescription;
private javax.swing.JTextField jtfAnalyzerStep2Url;
private javax.swing.JButton jtfAnalyzerStep3Preview;
private javax.swing.JLabel jtfAnalyzerStep3PreviewDescription;
private javax.swing.JTextField jtfAnalyzerStep3ProductDescription;
private javax.swing.JTextField jtfAnalyzerStep3ProductName;
private javax.swing.JTextField jtfAnalyzerStep3ProductParameterName;
private javax.swing.JTextField jtfAnalyzerStep3ProductParameterValue;
private javax.swing.JTextField jtfAnalyzerStep3ProductPrice;
private javax.swing.JTextField jtfAnalyzerStep3ProductPriceDPH;
private javax.swing.JTextField jtfAnalyzerStep3ProductProducer;
private javax.swing.JTextField jtfAnalyzerStep3ProductType;
private javax.swing.JTextField jtfAnalyzerStep3Url;
private javax.swing.JTextField jtfCrawlerAddUrl;
private javax.swing.JTextField jtfSettingsDatabase;
private javax.swing.JTextField jtfSettingsHost;
private javax.swing.JTextField jtfSettingsPort;
private javax.swing.JTextField jtfSettingsUsername;
private javax.swing.JTabbedPane jtpTabbedPane;
private javax.swing.JProgressBar progressBar;
private javax.swing.JLabel statusAnimationLabel;
private javax.swing.JLabel statusMessageLabel;
// End of variables declaration//GEN-END:variables
private final Timer messageTimer;
private final Timer busyIconTimer;
private final Icon idleIcon;
private final Icon[] busyIcons = new Icon[15];
private int busyIconIndex = 0;
private JDialog aboutBox;
private DefaultListModel crawlerQueueModel;
private List<JLabel> flashMessagesList;
private static AppView appView;
private int actualAnalyzerStep = 1;
private int analyzerStepsCount = 3;
private JPanel actualAnalyzerStepPanel;
private int analyzerStep2countOfComponents = 0;
private List<JReflectorBox> analyzerStep2Components;
private Methods analyzerMethods;
private String analyzerComponents;
private boolean analyzerLoadConditionsLocked = false;
private Preferences preferences;
}