commit a08dae9ad9d583f194459afbbd872f21ee01812f Author: Mystikfluu Date: Mon Feb 13 18:17:29 2023 +0100 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..466e248 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +out/ \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/artifacts/noEasyDB.xml b/.idea/artifacts/noEasyDB.xml new file mode 100644 index 0000000..f4b725a --- /dev/null +++ b/.idea/artifacts/noEasyDB.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/noEasyDB + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..2bf72ed --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/libraries/soot_oss.xml b/.idea/libraries/soot_oss.xml new file mode 100644 index 0000000..02c6521 --- /dev/null +++ b/.idea/libraries/soot_oss.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..02dc7e1 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ccd93a3 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF new file mode 100644 index 0000000..8e07566 --- /dev/null +++ b/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: at.fos.ermodel.gui.A1 + diff --git a/applicationimages/attr_conn_attr.png b/applicationimages/attr_conn_attr.png new file mode 100644 index 0000000..baebb98 Binary files /dev/null and b/applicationimages/attr_conn_attr.png differ diff --git a/applicationimages/attr_conn_es.png b/applicationimages/attr_conn_es.png new file mode 100644 index 0000000..db5d684 Binary files /dev/null and b/applicationimages/attr_conn_es.png differ diff --git a/applicationimages/attr_conn_rs.png b/applicationimages/attr_conn_rs.png new file mode 100644 index 0000000..abfa200 Binary files /dev/null and b/applicationimages/attr_conn_rs.png differ diff --git a/applicationimages/attr_derived_multi_value.png b/applicationimages/attr_derived_multi_value.png new file mode 100644 index 0000000..01f08c6 Binary files /dev/null and b/applicationimages/attr_derived_multi_value.png differ diff --git a/applicationimages/attr_derived_one_value.png b/applicationimages/attr_derived_one_value.png new file mode 100644 index 0000000..7c1d54f Binary files /dev/null and b/applicationimages/attr_derived_one_value.png differ diff --git a/applicationimages/attr_key_value.png b/applicationimages/attr_key_value.png new file mode 100644 index 0000000..09f76dd Binary files /dev/null and b/applicationimages/attr_key_value.png differ diff --git a/applicationimages/attr_multi_value.png b/applicationimages/attr_multi_value.png new file mode 100644 index 0000000..17204af Binary files /dev/null and b/applicationimages/attr_multi_value.png differ diff --git a/applicationimages/attr_one_value.png b/applicationimages/attr_one_value.png new file mode 100644 index 0000000..b6d79ba Binary files /dev/null and b/applicationimages/attr_one_value.png differ diff --git a/applicationimages/attr_weak_key_value.png b/applicationimages/attr_weak_key_value.png new file mode 100644 index 0000000..02f21df Binary files /dev/null and b/applicationimages/attr_weak_key_value.png differ diff --git a/applicationimages/erdlogo.png b/applicationimages/erdlogo.png new file mode 100644 index 0000000..6b5bafb Binary files /dev/null and b/applicationimages/erdlogo.png differ diff --git a/applicationimages/es.png b/applicationimages/es.png new file mode 100644 index 0000000..3481031 Binary files /dev/null and b/applicationimages/es.png differ diff --git a/applicationimages/es_associative.png b/applicationimages/es_associative.png new file mode 100644 index 0000000..e9e76d7 Binary files /dev/null and b/applicationimages/es_associative.png differ diff --git a/applicationimages/es_weak.png b/applicationimages/es_weak.png new file mode 100644 index 0000000..7d978e6 Binary files /dev/null and b/applicationimages/es_weak.png differ diff --git a/applicationimages/rs.png b/applicationimages/rs.png new file mode 100644 index 0000000..d475b30 Binary files /dev/null and b/applicationimages/rs.png differ diff --git a/applicationimages/rs_conn_es.png b/applicationimages/rs_conn_es.png new file mode 100644 index 0000000..3a7efc5 Binary files /dev/null and b/applicationimages/rs_conn_es.png differ diff --git a/applicationimages/rs_id.png b/applicationimages/rs_id.png new file mode 100644 index 0000000..67c988b Binary files /dev/null and b/applicationimages/rs_id.png differ diff --git a/applicationimages/rs_id_conn_es.png b/applicationimages/rs_id_conn_es.png new file mode 100644 index 0000000..4b5abb2 Binary files /dev/null and b/applicationimages/rs_id_conn_es.png differ diff --git a/applicationimages/rs_id_conn_es_weak.png b/applicationimages/rs_id_conn_es_weak.png new file mode 100644 index 0000000..e81f04e Binary files /dev/null and b/applicationimages/rs_id_conn_es_weak.png differ diff --git a/applicationimages/rs_isa.png b/applicationimages/rs_isa.png new file mode 100644 index 0000000..049bac0 Binary files /dev/null and b/applicationimages/rs_isa.png differ diff --git a/applicationimages/rs_isa_conn_general_es.png b/applicationimages/rs_isa_conn_general_es.png new file mode 100644 index 0000000..f74a49b Binary files /dev/null and b/applicationimages/rs_isa_conn_general_es.png differ diff --git a/applicationimages/rs_isa_conn_special_es.png b/applicationimages/rs_isa_conn_special_es.png new file mode 100644 index 0000000..e5749ac Binary files /dev/null and b/applicationimages/rs_isa_conn_special_es.png differ diff --git a/applicationimages/text.png b/applicationimages/text.png new file mode 100644 index 0000000..15a9e56 Binary files /dev/null and b/applicationimages/text.png differ diff --git a/applicationimages/text_without_border.png b/applicationimages/text_without_border.png new file mode 100644 index 0000000..fa97938 Binary files /dev/null and b/applicationimages/text_without_border.png differ diff --git a/applicationimages/tree_close.png b/applicationimages/tree_close.png new file mode 100644 index 0000000..37e7956 Binary files /dev/null and b/applicationimages/tree_close.png differ diff --git a/applicationimages/tree_open.png b/applicationimages/tree_open.png new file mode 100644 index 0000000..eb091f9 Binary files /dev/null and b/applicationimages/tree_open.png differ diff --git a/at/fos/ermodel/gui/A1.java b/at/fos/ermodel/gui/A1.java new file mode 100644 index 0000000..01dab45 --- /dev/null +++ b/at/fos/ermodel/gui/A1.java @@ -0,0 +1,18 @@ +package at.fos.ermodel.gui; + +import javafx.application.Application; +import javafx.stage.Stage; + +public class A1 extends Application { + public A1() { + } + + public void start(Stage stage) { + new B3(); + } + + public static void main(String[] args) { + launch(args); + } +} + diff --git a/at/fos/ermodel/gui/A2.java b/at/fos/ermodel/gui/A2.java new file mode 100644 index 0000000..6b9bd93 --- /dev/null +++ b/at/fos/ermodel/gui/A2.java @@ -0,0 +1,268 @@ + package at.fos.ermodel.gui; + + import javafx.event.ActionEvent; + import javafx.event.EventHandler; + import javafx.scene.control.RadioButton; + + public class A2 + implements EventHandler + { + private final B3 view; + + public A2(B3 simpleFrame) { + this.view = simpleFrame; + } + + + + + + + + public void handle(ActionEvent arg0) { + Object source = arg0.getSource(); + + if (source instanceof RadioButton && source == this.view.selectModeBTN) { + this.view.selectModeBTN.setStyle("-fx-text-fill:red"); + this.view.creationModelabel.setStyle("-fx-text-fill:white"); + this.view.menuVisibility.setDisable(false); + } + if (source instanceof RadioButton && source != this.view.selectModeBTN) { + + + this.view.menuVisibilityAllRMI.setSelected(true); + this.view.menuVisibilityTEXTRMI.setSelected(true); + (this.view.getCurrentTab()).canvas.modelVisibility(); + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.menuVisibility.setDisable(true); + + + + this.view.showAttributeCB.setSelected(false); + this.view.graphicElemLV.getItems().clear(); + this.view.graphicElemLV.getItems().addAll((this.view.getCurrentTab()).canvas.sddsfsfsdf45645645()); + + this.view.selectModeBTN.setStyle("-fx-text-fill:white"); + this.view.creationModelabel.setStyle("-fx-text-fill:red"); + this.view.lastCreationSelected = (RadioButton)source; + if (this.view.getCurrentTab() == null) { + this.view.selectModeBTN.setSelected(true); + + + + + + + return; + } + + + + + + + if (this.view.generateRelationalModelCB.isSelected()) { + this.view.selectModeBTN.setStyle("-fx-text-fill:red"); + this.view.creationModelabel.setStyle("-fx-text-fill:white"); + this.view.selectModeBTN.setSelected(true); + + + + + + + + + + return; + } + } + + + + + + + + + if (source == this.view.menuExitMI) { + this.view.close(); + } + + + + + if (source == this.view.menuNewMI) { + this.view.setCurrentTab(this.view.addNewTab(null)); + (this.view.getCurrentTab()).canvas.requestFocus(); + this.view.tabPane.getSelectionModel().select(this.view.getCurrentTab()); + } + + + if (source == this.view.menuRedrawMI) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + } + + if (source == this.view.menuExportMI) { + this.view.exportModel(); + } + + if (source == this.view.menuSaveMI) { + this.view.saveModel(); + } + + if (source == this.view.menuSaveAsMI) { + this.view.saveModelAs(); + } + + if (source == this.view.menuReadMI) { + this.view.readModel(); + } + + + if (source == this.view.creation_selection_group.getSelectedToggle()) { + (this.view.getCurrentTab()).canvas.sdfdsfdsdf43543ref(); + } + + + if (source == this.view.selectModeBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + (this.view.getCurrentTab()).canvas.sdfsdfds435634terf(); + this.view.statusInformation.setText("Selection mode: move mouse over element or use mouse to draw a rectangle - ESC -> deselect - DEL -> delete selected elements - pressed left mouse key -> move selected elements - right mouse over selected element -> open context menu"); + } + + + + + if (source == this.view.textElemBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: text-element-with-border -> press left mouse button on working area -> enter text (ALT-Enter for linefeed) -> press enter key"); + } + if (source == this.view.textWithoutBorderElemBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: text-element-without-border -> press left mouse button on working area -> enter text (ALT-Enter for linefeed) -> press enter key"); + } + + if (source == this.view.esBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: entity-set -> press left mouse button on working area -> enter name of entity-set -> press enter key"); + } + if (source == this.view.esWeakBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: weak-entity-set -> press left mouse button on working area -> enter name of weak-entity-set -> press enter key"); + } + if (source == this.view.esAssociativeBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: associative-entity-set -> press left mouse button on working area -> enter name of assoc.-entity-set -> press enter key"); + } + if (source == this.view.rsBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: relationship-type -> press left mouse button on working area -> enter name of relationship-type -> press enter key"); + } + if (source == this.view.rsIDBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: identifying-relationship-type -> press left mouse button on working area -> enter name of entity-set -> press enter key"); + } + if (source == this.view.rsISABTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: isa relationship-type -> press left mouse button on working area -> enter type (p/t/d/nd) -> press enter key"); + } + if (source == this.view.attrKeyBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: key-attribute"); + } + if (source == this.view.attrWeakKeyBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: weak-key-attribute"); + } + if (source == this.view.attrOneBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + + this.view.statusInformation.setText("Creation Mode: one-value-attribute"); + } + if (source == this.view.attrMultiBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + + this.view.statusInformation.setText("Creation Mode: multi-value-attribute"); + } + if (source == this.view.attrDerivedOneBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + + this.view.statusInformation.setText("Creation Mode: derived-one-value-attribute"); + } + if (source == this.view.attrDerivedMultiBTN) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + this.view.statusInformation.setText("Creation Mode: derived-multi-value-attribute"); + } + + + (this.view.getCurrentTab()).canvas.setConnectionModeSet(false); + if (source == this.view.attrToAttrBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect attribute to a composite-attribute - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.attrToESBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect attribute with an entity-set - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.attrToRSBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect attribute with a relationship-type - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.attrToRSBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect attribute with a relationship-type - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.rsToESBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect relationship-type with (associative-)entity-set or entity-set with associative-entity-set - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.rsidToESBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect identifying-relationship-type with entity-set - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.rsidToESWeakBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect identifying-relationship-type with weak-entity-set - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.rsisaGeToESBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect isa-relationship-type with generalized entity-set - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + if (source == this.view.rsisaSpToESBTN) { + (this.view.getCurrentTab()).canvas.setConnectionModeSet(true); + (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + this.view.statusInformation.setText("Creation Mode: connect isa-relationship-type with specialized entity-set - select element->click left mouse button->move mouse to second element->click left mouse button"); + } + + + + if (this.view.getCurrentTab() != null) { + (this.view.getCurrentTab()).canvas.dsfdsdfssdf45645re(); + } + + if (source == this.view.menuVisibilityTEXTRMI || source == this.view.menuVisibilityAllRMI || source == this.view.menuVisibilityES_RS_KEYRMI || + source == this.view.menuVisibilityES_RSRMI) { + (this.view.getCurrentTab()).canvas.modelVisibility(); + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + } + } + } + + diff --git a/at/fos/ermodel/gui/A3.java b/at/fos/ermodel/gui/A3.java new file mode 100644 index 0000000..3708b13 --- /dev/null +++ b/at/fos/ermodel/gui/A3.java @@ -0,0 +1,2991 @@ +package at.fos.ermodel.gui; + +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.collections.ObservableList; +import javafx.scene.canvas.Canvas; +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.control.MenuItem; +import javafx.scene.control.*; +import javafx.scene.image.ImageView; +import javafx.scene.input.*; +import javafx.scene.paint.Color; +import javafx.scene.transform.Scale; + +import java.awt.*; +import java.io.File; +import java.util.*; + + +public class A3 + extends Canvas +{ + private final A3 thisERMDrawCanvas; + private final U1 u1; + private final double canvasWidth = 2000.0D; + private final double canvasHeight = 2000.0D; + + private final B3 view; + + private final GraphicsContext gc; + private boolean elementIsSelected = false; + private Graphic_Main_Elem sdadasd34535trertertret = null; + + private double xOffset; + + private double yOffset; + private boolean connectionModeSet; + private Graphic_Main_Elem anyElem1; + private Graphic_Main_Elem anyElem2; + double dockXAnyElem1 = 0.0D; + double dockYAnyElem1 = 0.0D; + double dockXAnyElem2 = 0.0D; + double dockYAnyElem2 = 0.0D; + byte dockAtPointAnyElem1 = 0; + byte asdasdsad435435etertret = 0; + + + private int selectCounterConnection = 0; + + + private final ArrayList graphicElements; + + + private final ArrayList attributeElements; + + + private final ObservableList graphicElementsObservable; + + + private C4 relationalModel; + + private long elementID; + + private ContextMenu contextMenu = new ContextMenu(); + + private MenuItem addText; + + private MenuItem addName; + + private MenuItem addMinMax; + + private MenuItem addISASpec; + + private MenuItem sadsadas4353453retretret; + + private MenuItem sdfsdfsdfsdfdsf324324; + + private double dialogXPos; + + private double dialogYPos; + + private boolean dsasadasd345435fghgfh; + + private boolean changeDockingPoint; + private MenuItem changeDockingPointAtFigure1; + private MenuItem changeDockingPointAtFigure2; + private Graphic_LINE_Elem connectionToChange; + private Graphic_Figure_Elem figureToChange1; + private Graphic_Figure_Elem figureToChange2; + private boolean rectangleSelection = false; + private double selectRecX; + private double selectRecY; + private double selectRecXEnd; + private double selectRecYEnd; + private ArrayList selectedElements; + private File modelSavedInFile; + private String initialDirectory; + private final ArrayList zooming = new ArrayList<>(); + final KeyCombination sdfsdfds4564556 = new KeyCodeCombination(KeyCode.DIGIT0, KeyCombination.CONTROL_DOWN); + + + + final KeyCombination keyCombinationCTRL_R = new KeyCodeCombination(KeyCode.R, KeyCombination.CONTROL_DOWN); + + final KeyCombination keyCombinationCTRL_O = new KeyCodeCombination(KeyCode.O, KeyCombination.CONTROL_DOWN); + + final KeyCombination keyCombinationCTRL_E = new KeyCodeCombination(KeyCode.E, KeyCombination.CONTROL_DOWN); + + final KeyCombination keyCombinationCTRL_N = new KeyCodeCombination(KeyCode.N, KeyCombination.CONTROL_DOWN); + + final KeyCombination dsfsdfdsf56456 = new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN); + + final KeyCombination sadsdsadsad213213 = new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_DOWN); + + final KeyCombination dsfsfdsfd456456 = new KeyCodeCombination(KeyCode.X, KeyCombination.CONTROL_DOWN); + + final KeyCombination dfgsdd456456 = new KeyCodeCombination(KeyCode.V, KeyCombination.CONTROL_DOWN); + + final KeyCombination asdadsa324324 = new KeyCodeCombination(KeyCode.A, KeyCombination.CONTROL_DOWN); + + final KeyCombination keyCombinationCTRL_Z = new KeyCodeCombination(KeyCode.Z, KeyCombination.CONTROL_DOWN); + + final KeyCombination dsfsdfds67678768 = new KeyCodeCombination(KeyCode.Y, KeyCombination.CONTROL_DOWN); + + + + private final ArrayList pastActions; + + + + private final ArrayList futureActions; + + + + public A3(final B3 view, File modelSavedInFile, final U1 u1) { + this.thisERMDrawCanvas = this; + setWidth(this.canvasWidth); + setHeight(this.canvasHeight); + + this.graphicElements = new ArrayList<>(); + this.attributeElements = new ArrayList<>(); + + this.graphicElementsObservable = FXCollections.observableList(this.graphicElements); + this.graphicElementsObservable.addListener((ListChangeListener) arg0 -> { + if (!u1.getText().contains("*")) u1.setText(u1.getText() + "*"); + if (!arg0.next()) + return; + if (arg0.wasAdded()) { + + view.graphicElemLV.getItems().addAll(arg0.getAddedSubList()); + + + for (Graphic_Main_Elem gme : arg0.getAddedSubList()) { + if (gme instanceof Graphic_ATTR_Elem || + gme instanceof Graphic_ES_Main_Elem || + gme instanceof Graphic_RS_Main_Elem) { + A3.this.attributeElements.add(gme); + } + } + + for (Graphic_Main_Elem gme : arg0.getAddedSubList()) { + gme.sfdsfsfsddf123234435(U4.ADD); + A3.this.pastActions.add(gme); + } + + A3.this.futureActions.clear(); + } + arg0.wasUpdated(); + + + if (arg0.wasRemoved()) { + + view.graphicElemLV.getItems().removeAll(arg0.getRemoved()); + for (Graphic_Main_Elem gme : arg0.getRemoved()) { + if (gme instanceof Graphic_ATTR_Elem || + gme instanceof Graphic_ES_Main_Elem || + gme instanceof Graphic_RS_Main_Elem) { + A3.this.attributeElements.remove(gme); + } + } + + for (Graphic_Main_Elem gme : arg0.getAddedSubList()) { + if (gme instanceof Graphic_ATTR_Elem || + gme instanceof Graphic_ES_Main_Elem || + gme instanceof Graphic_RS_Main_Elem) { + A3.this.attributeElements.remove(gme); + } + } + + for (Graphic_Main_Elem gme : arg0.getRemoved()) { + gme.sfdsfsfsddf123234435(U4.REMOVE); + A3.this.pastActions.add(gme); + } + + A3.this.futureActions.clear(); + } + A3.this.asdadsa32432rweewr(); + + A3.this.sortGraphicElementsByName(); + if (view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + view.verticalBox.getChildren().clear(); + } + }); + + this.pastActions = new ArrayList<>(); + this.futureActions = new ArrayList<>(); + + this.elementID = 0L; + this.view = view; + this.gc = getGraphicsContext2D(); + setHandler(); + createContextMenu(); + this.modelSavedInFile = modelSavedInFile; + + String dbname = "erdb"; + if (modelSavedInFile != null) dbname = modelSavedInFile.getName().replace(".erm", "") + "db"; + this.relationalModel = new C4(dbname.toLowerCase()); + this.u1 = u1; + } + + + + + private void setHandler() { + this.thisERMDrawCanvas.setOnScroll(event -> { + if (event.isControlDown()) { + double zoomFactor = 1.05D; + double deltaY = event.getDeltaY(); + if (deltaY < 0.0D) { + zoomFactor = 0.95D; + } + if (zoomFactor == 1.05D) { + + A3.this.zooming.add(0.95D); + } + else { + + A3.this.zooming.add(1.05D); + } + + A3.this.thisERMDrawCanvas.getTransforms().add(new Scale(A3.this.thisERMDrawCanvas.getScaleX() * zoomFactor, + A3.this.thisERMDrawCanvas.getScaleY() * zoomFactor)); + event.consume(); + } + }); + + setOnMouseDragged(event -> { + if (A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh) { + return; + } + if (A3.this.selectedElements != null && A3.this.selectedElements.size() > 0) { + + if (!A3.this.u1.getText().contains("*")) A3.this.u1.setText(A3.this.u1.getText() + "*"); + + + for (Graphic_Main_Elem ge : A3.this.selectedElements) { + double newX = ge.xPos + event.getX() - A3.this.xOffset; + double newY = ge.yPos + event.getY() - A3.this.yOffset; + + if (!A3.this.dsfsdfds435345esfsfd(newX, newY, A3.this.selectedElements)) { + event.consume(); + + + + for (Graphic_Main_Elem geh : A3.this.selectedElements) { + newX = geh.xPos; + newY = geh.yPos; + geh.sdffdsfsdf4354357656(newX, newY); + ArrayList gleListStart = A3.this.dsfdsfdsjhkj456456(geh); + if (gleListStart.size() > 0) { + for (Graphic_LINE_Elem gle : gleListStart) { + gle.dsfsdfsfd(); + + gle.setxPos(((Graphic_Figure_Elem)geh).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[0]); + gle.setyPos(((Graphic_Figure_Elem)geh).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[1]); + gle.safdsadasds32432456456(); + } + } + ArrayList gleListEnd = A3.this.sdfsdfds23432rwefsd(geh); + if (gleListEnd.size() > 0) { + for (Graphic_LINE_Elem gle : gleListEnd) { + gle.dsfsdfsfd(); + gle.setxEnd(((Graphic_Figure_Elem)geh).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[0]); + gle.setyEnd(((Graphic_Figure_Elem)geh).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[1]); + gle.safdsadasds32432456456(); + } + } + } + + + return; + } + } + + for (Graphic_Main_Elem ge : A3.this.selectedElements) { + double newX = ge.xPos + event.getX() - A3.this.xOffset; + double newY = ge.yPos + event.getY() - A3.this.yOffset; + ge.sdffdsfsdf4354357656(newX, newY); + + ArrayList gleListStart = A3.this.dsfdsfdsjhkj456456(ge); + if (gleListStart.size() > 0) { + for (Graphic_LINE_Elem gle : gleListStart) { + gle.dsfsdfsfd(); + + gle.setxPos(((Graphic_Figure_Elem)ge).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[0] + event.getX() - A3.this.xOffset); + gle.setyPos(((Graphic_Figure_Elem)ge).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[1] + event.getY() - A3.this.yOffset); + gle.safdsadasds32432456456(); + } + } + ArrayList gleListEnd = A3.this.sdfsdfds23432rwefsd(ge); + if (gleListEnd.size() > 0) { + for (Graphic_LINE_Elem gle : gleListEnd) { + gle.dsfsdfsfd(); + gle.setxEnd(((Graphic_Figure_Elem)ge).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[0] + event.getX() - A3.this.xOffset); + gle.setyEnd(((Graphic_Figure_Elem)ge).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[1] + event.getY() - A3.this.yOffset); + gle.safdsadasds32432456456(); + } + } + } + A3.this.xOffset = event.getX(); + A3.this.yOffset = event.getY(); + + A3.this.dsfsdf12312456dgret(A3.this.selectedElements); + + A3.this.sdfdsf456456fghgf(A3.this.selectedElements); + event.consume(); + + return; + } + + if (A3.this.elementIsSelected) { + + if (A3.this.sdadasd34535trertertret instanceof Graphic_LINE_Elem) { + event.consume(); + + return; + } + if (!A3.this.u1.getText().contains("*")) A3.this.u1.setText(A3.this.u1.getText() + "*"); + + double newX = A3.this.sdadasd34535trertertret.xPos + event.getX() - A3.this.xOffset; + double newY = A3.this.sdadasd34535trertertret.yPos + event.getY() - A3.this.yOffset; + + + if (A3.this.dsfdsf43534dfdfhg(newX, newY, A3.this.sdadasd34535trertertret)) { + return; + } + + ArrayList gleListStart = A3.this.dsfdsfdsjhkj456456(A3.this.sdadasd34535trertertret); + if (gleListStart.size() > 0) { + for (Graphic_LINE_Elem gle : gleListStart) { + gle.dsfsdfsfd(); + gle.setxPos(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[0] + event.getX() - A3.this.xOffset); + gle.setyPos(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[1] + event.getY() - A3.this.yOffset); + + + gle.safdsadasds32432456456(); + } + } + ArrayList gleListEnd = A3.this.sdfsdfds23432rwefsd(A3.this.sdadasd34535trertertret); + if (gleListEnd.size() > 0) { + for (Graphic_LINE_Elem gle : gleListEnd) { + gle.dsfsdfsfd(); + gle.setxEnd(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[0] + event.getX() - A3.this.xOffset); + gle.setyEnd(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[1] + event.getY() - A3.this.yOffset); + + + gle.safdsadasds32432456456(); + } + } + + A3.this.sdadasd34535trertertret.sdffdsfsdf4354357656(newX, newY); + A3.this.xOffset = event.getX(); + A3.this.yOffset = event.getY(); + + ArrayList elList = new ArrayList<>(); + elList.add(A3.this.sdadasd34535trertertret); + A3.this.dsfsdfd456456rezrez(elList); + event.consume(); + + return; + } + + if (A3.this.rectangleSelection) { + A3.this.gc.clearRect(A3.this.selectRecX - 1.0D, A3.this.selectRecY - 1.0D, A3.this.selectRecXEnd - A3.this.selectRecX + 2.0D, A3.this.selectRecYEnd - A3.this.selectRecY + 2.0D); + A3.this.selectRecXEnd = event.getX(); + A3.this.selectRecYEnd = event.getY(); + A3.this.gc.setLineWidth(1.0D); + A3.this.gc.setLineDashes(3.0D); + A3.this.gc.setStroke(Color.RED); + A3.this.gc.strokeRect(A3.this.selectRecX, A3.this.selectRecY, A3.this.selectRecXEnd - A3.this.selectRecX, A3.this.selectRecYEnd - A3.this.selectRecY); + A3.this.gc.setLineDashes(); + A3.this.thisERMDrawCanvas.sdfsdfds3465er(false); + } + event.consume(); + }); + + + + setOnMouseReleased(event -> { + if (A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh) { + return; + } + if (A3.this.selectedElements != null && A3.this.selectedElements.size() > 0) { + event.consume(); + + return; + } + if (A3.this.rectangleSelection) { + A3.this.selectRecXEnd = event.getX(); + A3.this.selectRecYEnd = event.getY(); + A3.this.gc.clearRect(A3.this.selectRecX - 1.0D, A3.this.selectRecY - 1.0D, A3.this.selectRecXEnd - A3.this.selectRecX + 2.0D, A3.this.selectRecYEnd - A3.this.selectRecY + 2.0D); + + A3.this.selectedElements = A3.this.thisERMDrawCanvas.sdfsdf21321456456(A3.this.selectRecX - 1.0D, A3.this.selectRecY - 1.0D, A3.this.selectRecXEnd + 2.0D, A3.this.selectRecYEnd + 2.0D); + + if (A3.this.selectedElements.size() == 0) { + A3.this.rectangleSelection = false; + } else { + + A3.this.dsfsdfd456456rezrez(A3.this.selectedElements); + } + event.consume(); + } + }); + + setOnMouseMoved(event -> { + if (A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh) + return; + A3.this.thisERMDrawCanvas.requestFocus(); + + if (A3.this.selectedElements != null && A3.this.selectedElements.size() > 0) { + event.consume(); + return; + } + if (A3.this.rectangleSelection) { + event.consume(); + + return; + } + + if (A3.this.selectCounterConnection == 1) { + A3.this.sdfsdfds3465er(true); + A3.this.sdfdsfdsdf34543erretwre(); + A3.this.anyElem1.selectElem(); + A3.this.gc.setStroke(C2.TEMPLINEColor); + A3.this.gc.strokeLine(A3.this.dockXAnyElem1, A3.this.dockYAnyElem1, event.getX(), event.getY()); + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (A3.this.anyElem1 == gme || + !(gme instanceof Graphic_Figure_Elem)) + continue; + if (gme.dsfsfds45645456(event.getX(), event.getY())) { + double[] dockablePoints = ((Graphic_Figure_Elem)gme).getDockablePoint(event.getX(), event.getY()); + + if (dockablePoints != null) + { + if (gme.isConnectable) { + ((Graphic_Figure_Elem)gme).drawDockablePoint(C2.TEMPLINEColor, (int)dockablePoints[2]); + } + } + } + } + } + if (A3.this.isConnectionModeSet() && A3.this.selectCounterConnection == 0) { + A3.this.sdfsdfds3465er(true); + A3.this.sdfdsfdsdf34543erretwre(); + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + if (!(gme instanceof Graphic_Figure_Elem)) + continue; + if (gme.dsfsfds45645456(event.getX(), event.getY())) { + double[] dockablePoints = ((Graphic_Figure_Elem)gme).getDockablePoint(event.getX(), event.getY()); + + if (dockablePoints != null && + gme.isConnectable) { + ((Graphic_Figure_Elem)gme).drawDockablePoint(C2.TEMPLINEColor, (int)dockablePoints[2]); + } + } + } + } + + if (!A3.this.view.selectModeBTN.isSelected()) { + return; + } + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY())) { + gme.dgfdsfdssfd43534456(); + + A3.this.view.graphicElemLV.getSelectionModel().select(gme); + A3.this.view.graphicElemLV.scrollTo(A3.this.view.graphicElemLV.getSelectionModel().getSelectedIndex()); + + + + + if (A3.this.view.generateRelationalModelCB.isSelected()) { + T1 tableExists = A3.this.relationalModel.getTableGivenNumber(gme.sdfsdfsdfd()); + + + if (tableExists == null) { + tableExists = A3.this.relationalModel.getColumnGivenNumber(gme.sdfsdfsdfd()); + } + + int indexOfTable; + if (tableExists != null) { + indexOfTable = 0; + for (TreeItem tableInTree : A3.this.view.rootTableNode.getChildren()) { + if (tableInTree.getValue().getTablename().equals(tableExists.getTablename())) { + break; + } + indexOfTable++; + } + + A3.this.dsfsdfds7687683rew(A3.this.view.rootTableNode); + A3.this.view.rootTableNode.setExpanded(true); + A3.this.view.treeTableView.getSelectionModel().select(indexOfTable); + A3.this.view.treeTableView.scrollTo(A3.this.view.treeTableView.getSelectionModel().getSelectedIndex()); + + A3.this.sfdsfsfdss324243wer(tableExists); + } + } else { + + A3.this.view.verticalBox.getChildren().clear(); + } + + + + if (A3.this.sdadasd34535trertertret != null && gme != A3.this.sdadasd34535trertertret) A3.this.sdadasd34535trertertret.dfsdfssdf456456(); + A3.this.sdadasd34535trertertret = gme; + A3.this.elementIsSelected = true; + A3.this.thisERMDrawCanvas.requestFocus(); + event.consume(); + + + return; + } + } + + if (A3.this.sdadasd34535trertertret != null) A3.this.sdadasd34535trertertret.dfsdfssdf456456(); + A3.this.elementIsSelected = false; + A3.this.sdadasd34535trertertret = null; + A3.this.sdfsdfds3465er(true); + event.consume(); + }); + + + setOnMousePressed(event -> { + A3.this.u1.stackpane.requestFocus(); + + + if (A3.this.rectangleSelection) { + A3.this.selectRecX = event.getX(); + A3.this.selectRecY = event.getY(); + A3.this.xOffset = event.getX(); + A3.this.yOffset = event.getY(); + event.consume(); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + if (event.getButton() == MouseButton.PRIMARY && A3.this.view.selectModeBTN.isSelected()) { + + if (A3.this.elementIsSelected) { + A3.this.xOffset = event.getX(); + A3.this.yOffset = event.getY(); + event.consume(); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + A3.this.selectRecX = event.getX(); + A3.this.selectRecY = event.getY(); + A3.this.rectangleSelection = true; + event.consume(); + A3.this.thisERMDrawCanvas.requestFocus(); + + + return; + } + + if (event.getButton() == MouseButton.SECONDARY && A3.this.elementIsSelected) { + + + + + + + + + + + + + + + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = true; + + if (!A3.this.thisERMDrawCanvas.contextMenu.isShowing()) { + A3.this.thisERMDrawCanvas.createContextMenu(); + A3.this.thisERMDrawCanvas.setContextMenuItems(event.getScreenX() + 2.0D, event.getScreenY()); + + A3.this.thisERMDrawCanvas.contextMenu.show(A3.this.thisERMDrawCanvas, event.getScreenX() + 2.0D, event.getScreenY()); + event.consume(); + A3.this.thisERMDrawCanvas.requestFocus(); + } + + return; + } + + if (event.getButton() == MouseButton.PRIMARY) { + + + if (A3.this.view.attrToAttrBTN.isSelected()) { + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY()) && gme instanceof Graphic_ATTR_Elem) { + + + A3.this.sdfsdfsfds234324rew(gme, 0, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + + return; + } + + if (A3.this.view.attrToESBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY()) && ( + gme instanceof Graphic_ATTR_Elem || gme instanceof Graphic_ES_Elem || gme instanceof Graphic_ES_Assoc_Elem || gme instanceof Graphic_ES_Weak_Elem)) { + + + A3.this.sdfsdfsfds234324rew(gme, 1, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + + return; + } + + if (A3.this.view.attrToRSBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY()) && ( + gme instanceof Graphic_ATTR_Elem || gme instanceof Graphic_RS_Elem)) { + + + A3.this.sdfsdfsfds234324rew(gme, 2, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + + return; + } + + if (A3.this.view.rsidToESWeakBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY())) + { + if (gme instanceof Graphic_RS_Identifying_Elem || gme instanceof Graphic_ES_Weak_Elem) { + + + A3.this.sdfsdfsfds234324rew(gme, 6, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + } + + return; + } + if (A3.this.view.rsisaGeToESBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY())) + { + if (gme instanceof Graphic_ES_Weak_Elem || gme instanceof Graphic_ES_Elem || gme instanceof Graphic_RS_ISA_Elem) { + + + A3.this.sdfsdfsfds234324rew(gme, 4, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + } + + return; + } + if (A3.this.view.rsisaSpToESBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY())) + { + if (gme instanceof Graphic_ES_Elem || gme instanceof Graphic_RS_ISA_Elem) { + + + A3.this.sdfsdfsfds234324rew(gme, 5, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + } + + return; + } + if (A3.this.view.rsToESBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY())) + { + if (gme instanceof Graphic_Figure_Elem && !(gme instanceof Graphic_RS_ISA_Elem)) { + + + A3.this.sdfsdfsfds234324rew(gme, 3, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + } + + return; + } + if (A3.this.view.rsidToESBTN.isSelected()) { + + + for (Graphic_Main_Elem gme : A3.this.graphicElements) { + + if (gme.dsfsfds45645456(event.getX(), event.getY())) + { + if (gme instanceof Graphic_RS_Identifying_Elem || + gme instanceof Graphic_ES_Elem || + gme instanceof Graphic_ES_Weak_Elem || + gme instanceof Graphic_ES_Assoc_Elem) { + + + A3.this.sdfsdfsfds234324rew(gme, 7, event.getX(), event.getY(), event.getScreenX(), event.getScreenY()); + A3.this.thisERMDrawCanvas.requestFocus(); + + return; + } + } + } + + return; + } + + Graphic_Main_Elem gese = null; + String name = null; + + if (!A3.this.view.selectModeBTN.isSelected() && !A3.this.view.rsISABTN.isSelected() && !A3.this.view.textElemBTN.isSelected() && !A3.this.view.textWithoutBorderElemBTN.isSelected()) { + A5 ermend = new A5(A3.this.thisERMDrawCanvas, event.getScreenX(), event.getScreenY(), null); + + if (ermend.isDoNothing()) + return; name = ermend.getNameTF().getText(); + } + + + if (A3.this.view.textElemBTN.isSelected() || A3.this.view.textWithoutBorderElemBTN.isSelected()) { + A7 ermend = new A7(A3.this.thisERMDrawCanvas, event.getScreenX(), event.getScreenY(), null); + if (ermend.isDoNothing()) + return; + name = ermend.getTextTA().getText(); + boolean hasBorder = !A3.this.view.textWithoutBorderElemBTN.isSelected(); + gese = new Graphic_Text_Elem(A3.this.gc, event.getX(), event.getY(), name, hasBorder, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.esBTN.isSelected()) { + gese = new Graphic_ES_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.esWeakBTN.isSelected()) { + gese = new Graphic_ES_Weak_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.esAssociativeBTN.isSelected()) { + gese = new Graphic_ES_Assoc_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.rsBTN.isSelected()) { + gese = new Graphic_RS_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.rsIDBTN.isSelected()) { + gese = new Graphic_RS_Identifying_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.rsISABTN.isSelected()) { + A6 ermend = new A6(A3.this.thisERMDrawCanvas, event.getScreenX(), event.getScreenY(), null, null); + + + if (ermend.isDoNothing()) + return; + gese = new Graphic_RS_ISA_Elem(A3.this.gc, event.getX(), event.getY(), "ISA", A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + ((Graphic_RS_ISA_Elem)gese).setPartial_or_total(ermend.getP_tTF().getText()); + ((Graphic_RS_ISA_Elem)gese).setDisjunct_or_notdisjunct(ermend.getD_ndTF().getText()); + } + if (A3.this.view.attrOneBTN.isSelected()) { + gese = new Graphic_ATTR_One_Elem(A3.this.gc, event.getX(), event.getY(), name, false, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.attrMultiBTN.isSelected()) { + gese = new Graphic_ATTR_Multi_Elem(A3.this.gc, event.getX(), event.getY(), name, false, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.attrDerivedOneBTN.isSelected()) { + gese = new Graphic_ATTR_One_Elem(A3.this.gc, event.getX(), event.getY(), name, true, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.attrDerivedMultiBTN.isSelected()) { + gese = new Graphic_ATTR_Multi_Elem(A3.this.gc, event.getX(), event.getY(), name, true, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.attrKeyBTN.isSelected()) { + gese = new Graphic_ATTR_Key_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (A3.this.view.attrWeakKeyBTN.isSelected()) { + gese = new Graphic_ATTR_Weak_Key_Elem(A3.this.gc, event.getX(), event.getY(), name, A3.this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + + + assert gese != null; + gese.safdsadasds32432456456(); + + A3.this.graphicElementsObservable.add(gese); + + + + + + + String operatingSystem = System.getProperty("os.name"); + + if (!operatingSystem.toLowerCase().contains("linux")) { + + try { + (new Robot()).keyPress(9); + } catch (AWTException ignored) {} + } + + + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + A3.this.thisERMDrawCanvas.requestFocus(); + } + }); + } + + + + + + + + + + + + + + + + + + + + private boolean sfsdfsdf4354353(int connectionType, Graphic_Main_Elem anyElem1, Graphic_Main_Elem anyElem2) { + boolean connectionAllowed = true; + + if (connectionType == 4 || connectionType == 5) { + + if (anyElem1 instanceof Graphic_RS_ISA_Elem && + !(anyElem2 instanceof Graphic_ES_Elem)) connectionAllowed = false; + + + if (anyElem1 instanceof Graphic_ES_Elem && + !(anyElem2 instanceof Graphic_RS_ISA_Elem)) connectionAllowed = false; + + + return connectionAllowed; + } + + + if (connectionType == 3) { + + if (anyElem1 instanceof Graphic_RS_Elem && + !(anyElem2 instanceof Graphic_ES_Main_Elem)) connectionAllowed = false; + + + if (anyElem1 instanceof Graphic_ES_Main_Elem && + !(anyElem2 instanceof Graphic_RS_Elem)) connectionAllowed = false; + + + if (anyElem1 instanceof Graphic_ES_Assoc_Elem && + anyElem2 instanceof Graphic_ES_Main_Elem) connectionAllowed = true; + + if (anyElem1 instanceof Graphic_ES_Main_Elem && + anyElem2 instanceof Graphic_ES_Assoc_Elem) connectionAllowed = true; + + + return connectionAllowed; + } + + + if (connectionType == 7) { + + + connectionAllowed = connectionExists(anyElem1, anyElem2); + + + return connectionAllowed; + } + + + if (connectionType == 6) { + + + connectionAllowed = connectionExists(anyElem1, anyElem2); + + + return connectionAllowed; + } + + + if (connectionType == 2) { + + if (anyElem1 instanceof Graphic_RS_Elem) { + if (!(anyElem2 instanceof Graphic_ATTR_Elem)) connectionAllowed = false; + + } + if (anyElem1 instanceof Graphic_ATTR_Elem && + !(anyElem2 instanceof Graphic_RS_Elem)) connectionAllowed = false; + + + return connectionAllowed; + } + + + if (connectionType == 1) { + if (anyElem1 instanceof Graphic_ES_Main_Elem) { + if (!(anyElem2 instanceof Graphic_ATTR_Elem)) connectionAllowed = false; + + } + if (anyElem1 instanceof Graphic_ATTR_Elem && + !(anyElem2 instanceof Graphic_ES_Main_Elem)) connectionAllowed = false; + + + return connectionAllowed; + } + + + if (connectionType == 0) { + + connectionAllowed = connectionExists(anyElem1, anyElem2); + } + + + + + + + + + + + + + + + return connectionAllowed; + } + + + + + + + + + + + private boolean connectionExists(Graphic_Main_Elem anyElem1, Graphic_Main_Elem anyElem2) { + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Elem gmeline) { + if (gmeline.getConnectedWithEnd() == anyElem1 && + gmeline.getConnectedWithStart() == anyElem2) return false; + if (gmeline.getConnectedWithEnd() == anyElem2 && + gmeline.getConnectedWithStart() == anyElem1) return false; + } + } + return true; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + public void setConnectivityForFigures() { + Graphic_Main_Elem gme; + Iterator var2; + for(var2 = this.graphicElements.iterator(); var2.hasNext(); gme.isConnectable = false) { + gme = var2.next(); + } + + var2 = this.graphicElements.iterator(); + + while(true) { + do { + do { + do { + if (!var2.hasNext()) { + return; + } + + gme = var2.next(); + } while(!(gme instanceof Graphic_Figure_Elem)); + + if (this.view.attrToAttrBTN.isSelected() && gme instanceof Graphic_ATTR_Elem && !((Graphic_ATTR_Elem)gme).isKey()) { + gme.isConnectable = true; + } + + if (this.view.attrToESBTN.isSelected() && (gme instanceof Graphic_ATTR_Elem || gme instanceof Graphic_ES_Main_Elem)) { + gme.isConnectable = !(gme instanceof Graphic_ATTR_Elem) || this.attributeHasESRSConnection((Graphic_ATTR_Elem) gme); + } + + if (this.view.attrToRSBTN.isSelected() && (gme instanceof Graphic_ATTR_Elem || gme instanceof Graphic_RS_Main_Elem) && !(gme instanceof Graphic_RS_ISA_Elem) && !(gme instanceof Graphic_RS_Identifying_Elem)) { + gme.isConnectable = !(gme instanceof Graphic_ATTR_Elem) || this.attributeHasESRSConnection((Graphic_ATTR_Elem) gme); + } + + if (this.view.rsToESBTN.isSelected() && (gme instanceof Graphic_ES_Main_Elem || gme instanceof Graphic_RS_Elem)) { + gme.isConnectable = true; + } + + if (this.view.rsidToESWeakBTN.isSelected() && (gme instanceof Graphic_ES_Weak_Elem || gme instanceof Graphic_RS_Identifying_Elem)) { + gme.isConnectable = true; + } + + if (this.view.rsidToESBTN.isSelected() && (gme instanceof Graphic_ES_Elem || gme instanceof Graphic_ES_Assoc_Elem || gme instanceof Graphic_RS_Identifying_Elem || gme instanceof Graphic_ES_Weak_Elem)) { + gme.isConnectable = true; + } + + if (this.view.rsisaGeToESBTN.isSelected() && (gme instanceof Graphic_ES_Elem || gme instanceof Graphic_RS_ISA_Elem)) { + gme.isConnectable = true; + } + } while(!this.view.rsisaSpToESBTN.isSelected()); + } while(!(gme instanceof Graphic_ES_Elem) && !(gme instanceof Graphic_RS_ISA_Elem)); + + gme.isConnectable = true; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private boolean attributeHasESRSConnection(Graphic_ATTR_Elem gmeAttribute) { + boolean found = false; + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Attr_ES_Elem || + gme instanceof Graphic_LINE_Attr_RS_Elem) { + Graphic_LINE_Elem gmeline = (Graphic_LINE_Elem)gme; + if (gmeline.getConnectedWithEnd() == gmeAttribute || + gmeline.getConnectedWithStart() == gmeAttribute) return false; + } + } + return !found; + } + + + private void sdfsdfsfds234324rew(Graphic_Main_Elem gme, int connectionType, double mouseX, double mouseY, double screenX, double screenY) { + if (!gme.isConnectable) { + return; + } + + double[] dockablePoints = ((Graphic_Figure_Elem)gme).getDockablePoint(mouseX, mouseY); + if (dockablePoints == null) { + return; + } + switch (this.selectCounterConnection) { + case 0 -> { + this.anyElem1 = gme; + this.selectCounterConnection++; + this.view.buttonPane.setDisable(true); + gme.dgfdsfdssfd43534456(); + this.dockXAnyElem1 = dockablePoints[0]; + this.dockYAnyElem1 = dockablePoints[1]; + this.dockAtPointAnyElem1 = (byte) (int) dockablePoints[2]; + return; + } + case 1 -> { + if (!sfsdfsdf4354353(connectionType, this.anyElem1, gme)) { + return; + } + this.anyElem2 = gme; + if (this.anyElem1 == this.anyElem2) { + return; + } + this.selectCounterConnection++; + gme.dgfdsfdssfd43534456(); + this.dockXAnyElem2 = dockablePoints[0]; + this.dockYAnyElem2 = dockablePoints[1]; + this.asdasdsad435435etertret = (byte) (int) dockablePoints[2]; + } + } + + + if (this.selectCounterConnection >= 2) { + String minimum, maximum; + this.view.buttonPane.setDisable(false); + + + + + + + + + + + + + + Graphic_LINE_Elem gese = null; + switch (connectionType) { + case 0 -> gese = new Graphic_LINE_Attr_Attr_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + case 1 -> gese = new Graphic_LINE_Attr_ES_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + case 2 -> gese = new Graphic_LINE_Attr_RS_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + case 4 -> gese = new Graphic_LINE_RSISAG_ES_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + case 5 -> gese = new Graphic_LINE_RSISAS_ES_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + case 6 -> gese = new Graphic_LINE_RSID_ESWEAK_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + case 3, 7 -> { + if (!this.changeDockingPoint) { + A4 ermminmax = new A4(this.thisERMDrawCanvas, + screenX, + screenY, + "0", "n"); + if (ermminmax.isDoNothing()) { + + this.selectCounterConnection = 0; + this.anyElem1.dfsdfssdf456456(); + this.anyElem2.dfsdfssdf456456(); + this.anyElem1 = null; + this.anyElem2 = null; + this.dockXAnyElem1 = 0.0D; + this.dockYAnyElem1 = 0.0D; + this.dockXAnyElem2 = 0.0D; + this.dockYAnyElem2 = 0.0D; + this.dockAtPointAnyElem1 = 0; + this.asdasdsad435435etertret = 0; + + sdfsdfds3465er(true); + sdfdsfdsdf34543erretwre(); + return; + } + minimum = ermminmax.getMinTF().getText(); + maximum = ermminmax.getMaxTF().getText(); + } else { + + minimum = this.connectionToChange.getMinimum(); + maximum = this.connectionToChange.getMaximum(); + } + if (connectionType == 3) { + gese = new Graphic_LINE_RS_ES_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + } + if (connectionType == 7) + gese = new Graphic_LINE_RSID_ES_Elem(this.gc, + this.dockXAnyElem1, this.dockYAnyElem1, + this.dockXAnyElem2, this.dockYAnyElem2, + this.dockAtPointAnyElem1, this.asdasdsad435435etertret, + (Graphic_Figure_Elem) this.anyElem1, (Graphic_Figure_Elem) this.anyElem2, + this.thisERMDrawCanvas.sdfsddf345ersdf()); + gese.setMinimum(minimum); + gese.setMaximum(maximum); + } + } + + + + + this.graphicElementsObservable.add(gese); + + + + + + + this.selectCounterConnection = 0; + this.anyElem1.dfsdfssdf456456(); + this.anyElem2.dfsdfssdf456456(); + this.anyElem1 = null; + this.anyElem2 = null; + this.dockXAnyElem1 = 0.0D; this.dockYAnyElem1 = 0.0D; this.dockXAnyElem2 = 0.0D; this.dockYAnyElem2 = 0.0D; this.dockAtPointAnyElem1 = 0; this.asdasdsad435435etertret = 0; + + sdfsdfds3465er(true); + + if (this.changeDockingPoint) { + this.view.selectModeBTN.setSelected(true); + this.changeDockingPoint = false; + } else { + sdfdsfdsdf34543erretwre(); + } + if (this.view.generateRelationalModelCB.isSelected() && + !dsfdsdfssdf45645re()) { + this.view.verticalBox.getChildren().clear(); + } + } + } + + + + + + + + + public void clearERMDrawCanvas() { + this.gc.clearRect(0.0D, 0.0D, getWidth(), getHeight()); + + this.graphicElementsObservable.clear(); + + this.attributeElements.clear(); + + + this.elementID = 1L; + } + + + public void sdfdsfdsf43645re() { + this.selectedElements = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + this.selectedElements.add(gme); + gme.selectElem(); + } + this.rectangleSelection = true; + } + + + + + + public void sdfsdfds3465er(boolean clearCanvas) { + if (clearCanvas) sfdsfsd43543(); + + dsfsdf12312456dgret(null); + sdfdsf456456fghgf(null); + } + + + + + + + + public void dsfsdfd456456rezrez(ArrayList without) { + dsfsdf12312456dgret(without); + sdfdsf456456fghgf(without); + } + + + + + + + private void dsfsdf12312456dgret(ArrayList without) { + for (Graphic_Main_Elem gme : this.graphicElements) { + if ((gme instanceof Graphic_Figure_Elem || gme instanceof Graphic_Text_Elem) && ( + without == null || sadsadaads435435rete(without, gme))) gme.safdsadasds32432456456(); + + } + } + + + + + + + private void sdfdsf456456fghgf(ArrayList without) { + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Elem && ( + without == null || sadsadaads435435rete(without, gme))) gme.safdsadasds32432456456(); + + } + } + + + private boolean sadsadaads435435rete(ArrayList without, Graphic_Main_Elem figure) { + boolean found = true; + if (without.contains(figure)) return false; + return found; + } + + + public ArrayList dsfdsfdsjhkj456456(Graphic_Main_Elem elementSelected) { + ArrayList gle = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Elem && ( + (Graphic_LINE_Elem)gme).getConnectedWithStart().sdfsdfsdfd() == elementSelected.sdfsdfsdfd()) { + gle.add((Graphic_LINE_Elem)gme); + } + } + + return gle; + } + + + + + + + + public ArrayList sdfsdfds23432rwefsd(Graphic_Main_Elem elementSelected) { + ArrayList gle = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Elem && ( + (Graphic_LINE_Elem)gme).getConnectedWithEnd().sdfsdfsdfd() == elementSelected.sdfsdfsdfd()) { + gle.add((Graphic_LINE_Elem)gme); + } + } + + return gle; + } + + + + + + + + + public void sdfdsfd567657rrt(KeyEvent event) { + if (this.thisERMDrawCanvas.contextMenu.isShowing()) { + return; + } + if (this.keyCombinationCTRL_R.match(event)) { + (this.view.getCurrentTab()).canvas.sdfsdfds3465er(true); + event.consume(); + } + + + if (this.keyCombinationCTRL_O.match(event)) { + this.view.readModel(); + event.consume(); + } + + + if (this.keyCombinationCTRL_E.match(event)) { + this.view.close(); + return; + } + + if (this.keyCombinationCTRL_N.match(event)) { + this.view.setCurrentTab(this.view.addNewTab(null)); + (this.view.getCurrentTab()).canvas.requestFocus(); + this.view.tabPane.getSelectionModel().select(this.view.getCurrentTab()); + event.consume(); + + return; + } + + if (this.dsfsdfdsf56456.match(event)) { + this.view.saveModel(); + event.consume(); + + return; + } + + if (this.sdfsdfds4564556.match(event)) { + Collections.reverse(this.zooming); + for (Double d : this.zooming) { + this.thisERMDrawCanvas.getTransforms().add(new Scale(this.thisERMDrawCanvas.getScaleX() * d, + this.thisERMDrawCanvas.getScaleY() * d)); + } + this.thisERMDrawCanvas + .zooming.clear(); + setWidth(this.canvasWidth); + setHeight(this.canvasHeight); + event.consume(); + + return; + } + + if (this.dsfsfdsfd456456.match(event)) { + this.thisERMDrawCanvas.requestFocus(); + + if (this.selectedElements != null) { + this.view.setToCopyElements(new ArrayList<>()); + for (Graphic_Main_Elem gme : this.selectedElements) { + Graphic_Main_Elem gmeCopy = (Graphic_Main_Elem)T3.copyObject(gme); + this.view.getToCopyElements().add(gmeCopy); + } + + for (Graphic_Main_Elem gme : this.selectedElements) { + gme.dsfsdfsfd(); + sfsdfsfds4343(gme.sdfsdfsdfd()); + } + } + event.consume(); + + return; + } + + if (this.sadsdsadsad213213.match(event)) { + this.thisERMDrawCanvas.requestFocus(); + + if (this.selectedElements != null) { + this.view.setToCopyElements(new ArrayList<>()); + for (Graphic_Main_Elem gme : this.selectedElements) { + Graphic_Main_Elem gmeCopy = (Graphic_Main_Elem)T3.copyObject(gme); + this.view.getToCopyElements().add(gmeCopy); + } + } + event.consume(); + + return; + } + + if (this.dfgsdd456456.match(event)) { + this.thisERMDrawCanvas.requestFocus(); + if (this.view.getToCopyElements() != null) { + + ArrayList elementsPrepared = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.view.getToCopyElements()) { + Graphic_Main_Elem gmeCopy = (Graphic_Main_Elem)T3.copyObject(gme); + elementsPrepared.add(gmeCopy); + } + + + for (Graphic_Main_Elem gme : elementsPrepared) { + + if (gme instanceof Graphic_LINE_Elem) { + for (Graphic_Main_Elem gmeLinePoint : elementsPrepared) { + if (gmeLinePoint instanceof Graphic_Figure_Elem) { + if (((Graphic_LINE_Elem)gme).getConnectedWithEnd().sdfsdfsdfd() == gmeLinePoint.sdfsdfsdfd()) { + ((Graphic_LINE_Elem)gme).setConnectedWithEnd((Graphic_Figure_Elem)gmeLinePoint); + } + if (((Graphic_LINE_Elem)gme).getConnectedWithStart().sdfsdfsdfd() == gmeLinePoint.sdfsdfsdfd()) { + ((Graphic_LINE_Elem)gme).setConnectedWithStart((Graphic_Figure_Elem)gmeLinePoint); + } + } + } + } + } + + long nextElem = sdfsddf345ersdf(); + for (Graphic_Main_Elem gme : elementsPrepared) { + + gme.setGc(this.gc); + gme.dsdasadsasd32423432(nextElem); + gme.isVisible = true; + nextElem++; + } + + this.graphicElementsObservable.addAll(elementsPrepared); + + + + + + + sdfsdfds3465er(true); + + this.elementID = sdfsddf345ersdf(); + this.view.setToCopyElements(null); + } + event.consume(); + + return; + } + + if (this.asdadsa324324.match(event)) { + this.thisERMDrawCanvas.requestFocus(); + this.view.selectModeBTN.setSelected(true); + sdfdsfdsf43645re(); + event.consume(); + + return; + } + + if (this.keyCombinationCTRL_Z.match(event)) { + this.thisERMDrawCanvas.requestFocus(); + if (this.selectedElements != null || this.elementIsSelected) { + return; + } + if (this.pastActions != null && this.pastActions.size() > 0) { + + Graphic_Main_Elem lastAction = this.pastActions.remove(this.pastActions.size() - 1); + + this.futureActions.add(lastAction); + if (Objects.requireNonNull(lastAction.adsadadsa4354353()) == U4.REMOVE) { + this.graphicElements.add(lastAction); + lastAction.sfdsfsfsddf123234435(U4.ADD); + } else { + this.graphicElements.remove(lastAction); + lastAction.sfdsfsfsddf123234435(U4.REMOVE); + } + + + + + + + } + sdfsdfds3465er(true); + if (this.view.generateRelationalModelCB.isSelected() && + !dsfdsdfssdf45645re()) { + this.view.verticalBox.getChildren().clear(); + } + asdadsa32432rweewr(); + this.view.graphicElemLV.getItems().clear(); + this.view.graphicElemLV.getItems().addAll(this.graphicElements); + + if (this.connectionModeSet) (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + event.consume(); + + return; + } + + if (this.dsfsdfds67678768.match(event)) { + if (this.futureActions.size() > 0) { + Graphic_Main_Elem redoElem = this.futureActions.remove(this.futureActions.size() - 1); + + if (this.graphicElements.size() > 0) this.pastActions.add(this.graphicElements.get(this.graphicElements.size() - 1)); + if (Objects.requireNonNull(redoElem.adsadadsa4354353()) == U4.REMOVE) { + this.graphicElements.add(redoElem); + redoElem.sfdsfsfsddf123234435(U4.ADD); + } else { + this.graphicElements.remove(redoElem); + redoElem.sfdsfsfsddf123234435(U4.REMOVE); + } + + + + + + } + sdfsdfds3465er(true); + if (this.view.generateRelationalModelCB.isSelected() && + !dsfdsdfssdf45645re()) { + this.view.verticalBox.getChildren().clear(); + } + asdadsa32432rweewr(); + this.view.graphicElemLV.getItems().clear(); + this.view.graphicElemLV.getItems().addAll(this.graphicElements); + + if (this.connectionModeSet) (this.view.getCurrentTab()).canvas.sdfdsfdsdf34543erretwre(); + event.consume(); + + + return; + } + + + switch (event.getCode()) { + case F1,S -> { + sdfsdfds3465er(true); + if (this.view.selectModeBTN.isSelected()) { + this.selectedElements = null; + this.rectangleSelection = false; + this.elementIsSelected = false; + this.sdadasd34535trertertret = null; + this.view.lastCreationSelected.fire(); + } else { + this.view.selectModeBTN.fire(); + } + event.consume(); + return; + } + case BACK_SPACE, DELETE -> { + if (this.rectangleSelection) { + for (Graphic_Main_Elem gme : this.selectedElements) { + gme.dsfsdfsfd(); + sfsdfsfds4343(gme.sdfsdfsdfd()); + } + this.selectedElements = null; + this.rectangleSelection = false; + sdfsdfds3465er(true); + return; + } + if (!this.elementIsSelected) return; + this.sdadasd34535trertertret.dsfsdfsfd(); + if (this.sdadasd34535trertertret instanceof Graphic_Figure_Elem) { + ArrayList linesAsEnd = sdfsdfds23432rwefsd(this.sdadasd34535trertertret); + ArrayList linesAsStart = dsfdsfdsjhkj456456(this.sdadasd34535trertertret); + for (Graphic_LINE_Elem gle : linesAsEnd) { + + gle.dsfsdfsfd(); + + this.graphicElementsObservable.remove(gle); + + } + + for (Graphic_LINE_Elem gle : linesAsStart) { + + gle.dsfsdfsfd(); + + this.graphicElementsObservable.remove(gle); + + } + + } + + + this.graphicElementsObservable.remove(this.sdadasd34535trertertret); + + + + + + + this.elementIsSelected = false; + + this.sdadasd34535trertertret = null; + + sdfsdfds3465er(true); + } + + + + case ESCAPE -> { + + if (this.thisERMDrawCanvas.dsasadasd345435fghgfh) this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + + + + if (this.rectangleSelection) { + + this.rectangleSelection = false; + + this.selectedElements = null; + + sdfsdfds3465er(false); + + return; + + } + + if (this.selectCounterConnection > 0) { + + if (this.anyElem1 != null) this.anyElem1.dfsdfssdf456456(); + + this.anyElem1 = null; + + if (this.anyElem2 != null) this.anyElem2.dfsdfssdf456456(); + + this.anyElem2 = null; + + sdfsdfds3465er(true); + + sdfdsfdsdf34543erretwre(); + + + this.view.buttonPane.setDisable(false); + + + this.selectCounterConnection = 0; + + } + } + + + + + + + + case UP -> { + + if (dsfdsfds4354354fdhf(0.0D, -5.0D)) { + + + dsfsfdsd3453efs(0.0D, -5.0D); + + sdfsdfds3465er(true); + + } + } + + + case DOWN -> { + + dsfsfdsd3453efs(0.0D, 5.0D); + + sdfsdfds3465er(true); + + sdfdsfsfds(); + } + + + case LEFT -> { + + if (dsfdsfds4354354fdhf(-5.0D, 0.0D)) { + + + dsfsfdsd3453efs(-5.0D, 0.0D); + + sdfsdfds3465er(true); + + } + } + + + case RIGHT -> { + + dsfsfdsd3453efs(5.0D, 0.0D); + + sdfsdfds3465er(true); + + sdfdsfsfds(); + } + + } + + + event.consume(); + } + + + + + + + + public void createContextMenu() { + this.contextMenu = new ContextMenu(); + + + + + this.contextMenu.setOnHiding(event -> { + if (A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh) A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + + }); + + + this.addText = new MenuItem("Change Text"); + this.addText.setOnAction(event -> { + event.consume(); + A7 ermend = new A7(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, A3.this.sdadasd34535trertertret.name); + if (A3.this.sdadasd34535trertertret instanceof Graphic_Text_Elem) { + + ((Graphic_Text_Elem)A3.this.sdadasd34535trertertret).changeName(ermend.getTextTA().getText()); + A3.this.view.graphicElemLV.refresh(); + + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + } + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + }); + + + this.addName = new MenuItem("Change Name"); + this.addName.setOnAction(event -> { + event.consume(); + A5 ermend = new A5(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, A3.this.sdadasd34535trertertret.name); + if (A3.this.sdadasd34535trertertret instanceof Graphic_Figure_Elem) { + ArrayList gleListStart = A3.this.dsfdsfdsjhkj456456(A3.this.sdadasd34535trertertret); + + + ((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).changeName(ermend.getNameTF().getText()); + A3.this.view.graphicElemLV.refresh(); + + + + + if (gleListStart.size() > 0) { + for (Graphic_LINE_Elem gle : gleListStart) { + gle.dsfsdfsfd(); + + gle.setxPos(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[0]); + gle.setyPos(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtStart())[1]); + gle.safdsadasds32432456456(); + } + } + ArrayList gleListEnd = A3.this.sdfsdfds23432rwefsd(A3.this.sdadasd34535trertertret); + if (gleListEnd.size() > 0) { + for (Graphic_LINE_Elem gle : gleListEnd) { + gle.dsfsdfsfd(); + gle.setxEnd(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[0]); + gle.setyEnd(((Graphic_Figure_Elem)A3.this.sdadasd34535trertertret).getXYForGivenPoint(gle.getLineConnectedWithPointAtEnd())[1]); + gle.safdsadasds32432456456(); + } + } + + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + } + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + }); + + + this.addMinMax = new MenuItem("Change Min/Max"); + this.addMinMax.setOnAction(event -> { + event.consume(); + Graphic_LINE_Elem gle = (Graphic_LINE_Elem)A3.this.sdadasd34535trertertret; + A4 ermend = new A4(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, gle.getMinimum(), gle.getMaximum()); + gle.changeMinMax(ermend.getMinTF().getText(), ermend.getMaxTF().getText()); + A3.this.view.graphicElemLV.refresh(); + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + }); + + + this.addISASpec = new MenuItem("Change T-P/D-ND"); + this.addISASpec.setOnAction(event -> { + event.consume(); + Graphic_RS_ISA_Elem gle = (Graphic_RS_ISA_Elem)A3.this.sdadasd34535trertertret; + A6 ermend = new A6(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, gle.getPartial_or_total(), gle.getDisjunct_or_notdisjunct()); + gle.changeP_T_D_ND(ermend.getP_tTF().getText(), ermend.getD_ndTF().getText()); + A3.this.view.graphicElemLV.refresh(); + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + }); + + + this.sadsadas4353453retretret = new MenuItem("ES/RS Transformation"); + this.sadsadas4353453retretret.setOnAction(event -> { + event.consume(); + U3 tir = (U3)A3.this.sdadasd34535trertertret; + + A9 ermend = new A9(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, + A3.this.sdadasd34535trertertret.name, + tir.getCreateRelation(), + tir.getRelationName(), + tir.getRelationPraefix(), + tir.getCreateInserts(), + tir.getNumberRowsToInsert(), + false); + tir.setCreateRelation(ermend.getCreateRelationCB().isSelected()); + tir.setRelationName(ermend.getRelationNameTF().getText()); + tir.setRelationPraefix((ermend.getRelationPraefixTF().getText() == null) ? "" : ermend.getRelationPraefixTF().getText()); + tir.setCreateInserts(ermend.getCreateInsertStatementsCB().isSelected()); + tir.setNumberRowsToInsert(Long.parseLong(ermend.getNumberRowsToInsertTF().getText())); + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + + A3.this.view.graphicElemLV.refresh(); + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + }); + + + + this.sdfsdfsdfsdfdsf324324 = new MenuItem("Attribute Transformation"); + this.sdfsdfsdfsdfdsf324324.setOnAction(event -> { + event.consume(); + U2 tir = (U2)A3.this.sdadasd34535trertertret; + if (A3.this.sdadasd34535trertertret instanceof Graphic_ATTR_Multi_Elem) { + B1 ermend = new B1(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, + A3.this.sdadasd34535trertertret.name, + tir.getCreateColumn(), + tir.getColumnName(), + tir.getMVRelationName(), + tir.getMVRelationNamePraefix(), + tir.getColumnPostfix(), + tir.getDatatype(), + tir.isAutoincrement(), + tir.isKey(), + tir.isNullable(), + tir.isUnique()); + tir.setCreateColumn(ermend.getCreateColumnCB().isSelected()); + tir.setColumnName(ermend.getColumnNameTF().getText()); + tir.setMVRelationName(ermend.getRelationNameTF().getText()); + tir.setMVRelationNamePraefix(ermend.getRelationNamePraefixTF().getText()); + tir.setColumnPostfix(ermend.getColumnPostfixTF().getText()); + tir.setDatatype(ermend.getDatatypeTF().getText()); + tir.setIsAutoincrement(ermend.getIsAutoincrementCB().isSelected()); + tir.setIsKey(ermend.getIsKeyCB().isSelected()); + tir.setIsNullable(ermend.getIsNullableCB().isSelected()); + tir.setIsUnique(ermend.getIsUniqueCB().isSelected()); + } + else { + + A8 ermend = new A8(A3.this.thisERMDrawCanvas, A3.this.dialogXPos, A3.this.dialogYPos, + A3.this.sdadasd34535trertertret.name, + tir.getCreateColumn(), + tir.getColumnName(), + tir.getColumnPostfix(), + tir.getDatatype(), + (A3.this.sdadasd34535trertertret instanceof Graphic_ATTR_Weak_Key_Elem), + tir.isAutoincrement(), + tir.getAutoincrementStartAt(), + tir.isKey(), + tir.isNullable(), + tir.isUnique(), + tir.getDataGenerationType(), + tir.getPar1(), + tir.getPar1_label(), + tir.getPar2(), + tir.getPar2_label()); + tir.setCreateColumn(ermend.getCreateColumnCB().isSelected()); + tir.setColumnName(ermend.getColumnNameTF().getText()); + tir.setColumnPostfix(ermend.getColumnPostfixTF().getText()); + tir.setDatatype(ermend.getDatatypeTF().getText()); + tir.setIsAutoincrement(ermend.getIsAutoincrementCB().isSelected()); + tir.setAutoincrementStartAt(Long.parseLong(ermend.getAutoincrementStartAtTF().getText())); + tir.setIsKey(ermend.getIsKeyCB().isSelected()); + tir.setIsNullable(ermend.getIsNullableCB().isSelected()); + tir.setIsUnique(ermend.getIsUniqueCB().isSelected()); + tir.setDataGenerationType(ermend.getDataGenerationTypeCoB().getSelectionModel().getSelectedItem()); + tir.setPar1(ermend.getPar1TF().getText()); + tir.setPar1_label(ermend.getPar1LBL().getText()); + tir.setPar2(ermend.getPar2TF().getText()); + tir.setPar2_label(ermend.getPar2LBL().getText()); + } + + + A3.this.view.graphicElemLV.refresh(); + + A3.this.thisERMDrawCanvas.dsasadasd345435fghgfh = false; + if (A3.this.view.generateRelationalModelCB.isSelected() && + !A3.this.dsfdsdfssdf45645re()) { + A3.this.view.verticalBox.getChildren().clear(); + } + }); + + + this.changeDockingPointAtFigure1 = new MenuItem("Change Docking Point at "); + this.changeDockingPointAtFigure1.setOnAction(event -> A3.this.prepareForDockingChange(A3.this.figureToChange2, + A3.this.connectionToChange.getxPos(), A3.this.connectionToChange.getyPos(), + A3.this.connectionToChange.getLineConnectedWithPointAtStart())); + + + this.changeDockingPointAtFigure2 = new MenuItem("Change Docking Point at "); + this.changeDockingPointAtFigure2.setOnAction(event -> A3.this.prepareForDockingChange(A3.this.figureToChange1, + A3.this.connectionToChange.getxEnd(), A3.this.connectionToChange.getyEnd(), + A3.this.connectionToChange.getLineConnectedWithPointAtEnd())); + + this.contextMenu.getItems().addAll(this.addName, this.addText, this.addMinMax, this.addISASpec, this.sadsadas4353453retretret, this.sdfsdfsdfsdfdsf324324, this.changeDockingPointAtFigure1, this.changeDockingPointAtFigure2); + } + + + + + + + + + + private void prepareForDockingChange(Graphic_Figure_Elem figureHold, double x, double y, byte pointAt) { + this.sdadasd34535trertertret.dsfsdfsfd(); + this.graphicElementsObservable.remove(this.sdadasd34535trertertret); + + this.connectionModeSet = true; + if (this.sdadasd34535trertertret instanceof Graphic_LINE_RSISAG_ES_Elem) this.view.rsisaGeToESBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_RSISAS_ES_Elem) this.view.rsisaSpToESBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_Attr_Elem) this.view.attrToAttrBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_ES_Elem) this.view.attrToESBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_RS_Elem) this.view.attrToRSBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_RSID_ESWEAK_Elem) this.view.rsidToESWeakBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_RSID_ES_Elem) this.view.rsidToESBTN.setSelected(true); + if (this.sdadasd34535trertertret instanceof Graphic_LINE_RS_ES_Elem) this.view.rsToESBTN.setSelected(true); + + + this.anyElem1 = figureHold; + this.anyElem2 = null; + this.dockXAnyElem1 = x; + this.dockYAnyElem1 = y; + this.dockAtPointAnyElem1 = pointAt; + this.selectCounterConnection = 1; + + this.changeDockingPoint = true; + + this.view.buttonPane.setDisable(true); + } + + + + + + private void setContextMenuItems(double xPos, double yPos) { + this.dialogXPos = xPos; + this.dialogYPos = yPos; + + + this.addText.setVisible(false); + this.addName.setVisible(false); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + this.changeDockingPointAtFigure1.setVisible(false); + this.changeDockingPointAtFigure2.setVisible(false); + + + + if (this.sdadasd34535trertertret instanceof Graphic_Text_Elem) { + this.addText.setVisible(true); + this.addName.setVisible(false); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + + return; + } + + if (this.sdadasd34535trertertret instanceof Graphic_ES_Main_Elem) { + this.addText.setVisible(false); + this.addName.setVisible(true); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(true); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + + return; + } + + if (this.sdadasd34535trertertret instanceof Graphic_RS_Identifying_Elem) { + this.addText.setVisible(false); + this.addName.setVisible(true); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + + return; + } + + if (this.sdadasd34535trertertret instanceof Graphic_RS_ISA_Elem) { + this.addText.setVisible(false); + this.addName.setVisible(false); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(true); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + + + return; + } + + if (this.sdadasd34535trertertret instanceof Graphic_RS_Main_Elem) { + this.addText.setVisible(false); + this.addName.setVisible(true); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(true); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + + return; + } + + if (this.sdadasd34535trertertret instanceof Graphic_ATTR_Elem) { + this.addText.setVisible(false); + this.addName.setVisible(true); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(true); + + + return; + } + + this.connectionToChange = null; + if (this.sdadasd34535trertertret instanceof Graphic_LINE_Elem && + !(this.sdadasd34535trertertret instanceof Graphic_LINE_RSISAG_ES_Elem) && + !(this.sdadasd34535trertertret instanceof Graphic_LINE_RSISAS_ES_Elem) && + !(this.sdadasd34535trertertret instanceof Graphic_LINE_RSID_ESWEAK_Elem) && + !(this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_Attr_Elem) && + !(this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_ES_Elem) && + !(this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_RS_Elem)) { + this.addText.setVisible(false); + this.addName.setVisible(false); + this.addMinMax.setVisible(true); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + this.connectionToChange = (Graphic_LINE_Elem)this.sdadasd34535trertertret; + this.figureToChange1 = this.connectionToChange.getConnectedWithEnd(); + this.figureToChange2 = this.connectionToChange.getConnectedWithStart(); + this.changeDockingPointAtFigure1.setVisible(true); + String elementToUndock1 = this.figureToChange1.sdfsdfsd32234243(); + this.changeDockingPointAtFigure1.setText(this.changeDockingPointAtFigure1.getText() + " " + elementToUndock1); + this.changeDockingPointAtFigure2.setVisible(true); + String elementToUndock2 = this.figureToChange2.sdfsdfsd32234243(); + this.changeDockingPointAtFigure2.setText(this.changeDockingPointAtFigure2.getText() + " " + elementToUndock2); + + return; + } + + if (this.sdadasd34535trertertret instanceof Graphic_LINE_RSISAG_ES_Elem || + this.sdadasd34535trertertret instanceof Graphic_LINE_RSISAS_ES_Elem || + this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_Attr_Elem || + this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_ES_Elem || + this.sdadasd34535trertertret instanceof Graphic_LINE_Attr_RS_Elem || + this.sdadasd34535trertertret instanceof Graphic_LINE_RSID_ESWEAK_Elem) { + this.addText.setVisible(false); + this.addName.setVisible(false); + this.addMinMax.setVisible(false); + this.addISASpec.setVisible(false); + this.sadsadas4353453retretret.setVisible(false); + this.sdfsdfsdfsdfdsf324324.setVisible(false); + this.connectionToChange = (Graphic_LINE_Elem)this.sdadasd34535trertertret; + this.figureToChange1 = this.connectionToChange.getConnectedWithEnd(); + this.figureToChange2 = this.connectionToChange.getConnectedWithStart(); + this.changeDockingPointAtFigure1.setVisible(true); + String elementToUndock1 = this.figureToChange1.sdfsdfsd32234243(); + this.changeDockingPointAtFigure1.setText(this.changeDockingPointAtFigure1.getText() + " " + elementToUndock1); + this.changeDockingPointAtFigure2.setVisible(true); + String elementToUndock2 = this.figureToChange2.sdfsdfsd32234243(); + this.changeDockingPointAtFigure2.setText(this.changeDockingPointAtFigure2.getText() + " " + elementToUndock2); + } + } + + + + + + + + + + + + private ArrayList sdfsdf21321456456(double xStart, double yStart, double xEnd, double yEnd) { + ArrayList selEl = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme.xPos >= xStart && gme.yPos >= yStart && + gme.xPos <= xEnd && gme.yPos <= yEnd) { + + gme.safdsadasds32432456456(); + gme.selectElem(); + + selEl.add(gme); + } + } + return selEl; + } + + + + + + + + public void sfsdfsfds4343(long elementID) { + for (int i = 0; i < this.graphicElements.size(); i++) { + if (this.graphicElements.get(i).sdfsdfsdfd() == elementID) { + this.graphicElementsObservable.remove(i); + return; + } + } + } + + + + + + + + + + public void sdfdsfdsdf43543ref() { + if (this.rectangleSelection) { + this.rectangleSelection = false; + for (Graphic_Main_Elem ge : this.selectedElements) { + ge.safdsadasds32432456456(); + } + this.selectedElements = null; + } + } + + + + + + public void sfdsfsd43543() { + this.gc.clearRect(0.0D, 0.0D, this.canvasWidth, this.canvasHeight); + } + + + + + + + + + + + + private boolean dsfsdfds435345esfsfd(double newX, double newY, ArrayList selectedElements) { + for (Graphic_Main_Elem gme : selectedElements) { + if (dsfdsf43534dfdfhg(newX, newY, gme)) return false; + } + return true; + } + + + + + + private boolean dsfdsfds4354354fdhf(double newXd, double newYd) { + for (Graphic_Main_Elem gme : this.graphicElements) { + if (dsfdsf43534dfdfhg(gme.getxPos() + newXd, gme.getyPos() + newYd, gme)) return false; + } + return true; + } + + + + + + + + + + private boolean dsfdsf43534dfdfhg(double newX, double newY, Graphic_Main_Elem gme) { + if (gme instanceof Graphic_Figure_Elem || gme instanceof Graphic_Text_Elem) + { + return !(newX - gme.dsfsfsd456457657() / 2.0D >= 0.0D) || !(newY - gme.getHeight() / 2.0D >= 0.0D); + } + + else return !(newX >= 0.0D) || !(newY >= 0.0D); + } + + + + + + public double[] dssfsdfd43643634() { + double[] widthHeight = new double[2]; + double maxHeight = 0.0D; + double maxWidth = 0.0D; + + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_Figure_Elem) { + if (maxWidth < gme.getxPos() + gme.dsfsfsd456457657()) { + maxWidth = gme.getxPos() + gme.dsfsfsd456457657(); + } + if (maxHeight < gme.getyPos() + gme.getHeight()) { + maxHeight = gme.getyPos() + gme.getHeight(); + } + } + } + widthHeight[0] = maxWidth; + widthHeight[1] = maxHeight; + return widthHeight; + } + + + + + public ArrayList sddsfsfsdf45645645() { + return this.graphicElements; + } + + + + + public void safdsadsa65765ewthjk(ArrayList graphicElements) { + this.graphicElementsObservable.addAll(graphicElements); + } + + + + + public File getSaveFile() { + return this.modelSavedInFile; + } + + + + + public void setSaveFile(File modelSavedInFile) { + this.modelSavedInFile = modelSavedInFile; + } + + + + + + + + + + + + + + + + + public void sdfdsfdsdf34543erretwre() { + setConnectivityForFigures(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_Figure_Elem) { + ((Graphic_Figure_Elem)gme).dockablePointsAtElem(); + } + } + } + + + + + public void sdfsdfds435634terf() { + this.rectangleSelection = false; + this.selectedElements = null; + this.anyElem1 = null; + this.selectCounterConnection = 0; + } + + + + + + + + + public void modelVisibility() { + if (this.view.menuVisibilityAllRMI == null) + return; if (this.view.menuVisibilityAllRMI.isSelected() && this.view.menuVisibilityTEXTRMI.isSelected()) { + for (Graphic_Main_Elem gme : this.graphicElements) { + gme.isVisible = true; + } + + return; + } + if (this.view.menuVisibilityAllRMI.isSelected() && !this.view.menuVisibilityTEXTRMI.isSelected()) { + for (Graphic_Main_Elem gme : this.graphicElements) { + gme.isVisible = !(gme instanceof Graphic_Text_Elem); + + } + + return; + } + for (Graphic_Main_Elem gme : this.graphicElements) { + gme.isVisible = false; + } + + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (this.view.menuVisibilityTEXTRMI.isSelected() && + gme instanceof Graphic_Text_Elem) { + gme.isVisible = true; + } + + + + if ((this.view.menuVisibilityES_RSRMI.isSelected() || this.view.menuVisibilityES_RS_KEYRMI.isSelected()) && ( + gme instanceof Graphic_ES_Main_Elem || gme instanceof Graphic_RS_Main_Elem)) { + gme.isVisible = true; + + for (Graphic_LINE_Elem line : sdfsdfds23432rwefsd(gme)) { + line.isVisible = true; + } + for (Graphic_LINE_Elem line : dsfdsfdsjhkj456456(gme)) { + line.isVisible = true; + } + + for (Graphic_Main_Elem attributes : getAttributesForVisibility(gme)) { + + for (Graphic_LINE_Elem line : sdfsdfds23432rwefsd(attributes)) { + line.isVisible = false; + } + for (Graphic_LINE_Elem line : dsfdsfdsjhkj456456(attributes)) { + line.isVisible = false; + } + } + } + + + + if (this.view.menuVisibilityES_RS_KEYRMI.isSelected()) { + + for (Graphic_Main_Elem attributes : getKeyAttributesForVisibility(gme)) { + attributes.isVisible = true; + + for (Graphic_LINE_Elem line : sdfsdfds23432rwefsd(attributes)) { + line.isVisible = true; + } + for (Graphic_LINE_Elem line : dsfdsfdsjhkj456456(attributes)) { + line.isVisible = true; + } + } + + for (Graphic_Main_Elem attributes : getWeakKeyAttributesForVisibility(gme)) { + attributes.isVisible = true; + + for (Graphic_LINE_Elem line : sdfsdfds23432rwefsd(attributes)) { + line.isVisible = true; + } + for (Graphic_LINE_Elem line : dsfdsfdsjhkj456456(attributes)) { + line.isVisible = true; + } + } + } + } + } + + + + + + + public long getElementID() { + return this.elementID; + } + + + + + public void dsfds124332(long elementID) { + this.elementID = elementID; + } + + + + + + public long sdfsddf345ersdf() { + long lastId = 0L; + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme.sdfsdfsdfd() > lastId) lastId = gme.sdfsdfsdfd(); + } + return lastId + 1L; + } + + + private void dsfsfdsd3453efs(double xd, double yd) { + for (Graphic_Main_Elem gme : this.graphicElements) { + gme.setxPos(gme.getxPos() + xd); + gme.setyPos(gme.getyPos() + yd); + if (gme instanceof Graphic_Figure_Elem gfe) { + gfe.calculateTextWidthHeight(); + } + if (gme instanceof Graphic_LINE_Elem gle) { + gle.setxEnd(gle.getxEnd() + xd); + gle.setyEnd(gle.getyEnd() + yd); + } + } + } + + + + + + + + private void sdfdsfsfds() {} + + + + + + + public double getCanvasWidth() { + return this.canvasWidth; + } + + + + + public double getCanvasHeight() { + return this.canvasHeight; + } + + + + + + + + + private void sfdsfsfdss324243wer(T1 table) { + this.view.rootColumnNode = new TreeItem<>(null); + + this.view.treeColumnView = new TreeView<>(this.view.rootColumnNode); + + this.view.treeColumnView.setShowRoot(false); + if (this.view.verticalBox.getChildren().size() > 1) { this.view.verticalBox.getChildren().set(1, this.view.treeColumnView); } + else { this.view.verticalBox.getChildren().add(this.view.treeColumnView); } + + this.view.treeColumnView.setCellFactory(p -> new TreeCell<>() { + protected void updateItem(C3 item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setStyle("-fx-text-fill: black;-fx-font-size: 12;"); + if (item.isKey()) { + setStyle("-fx-font-weight: bold;-fx-font-size: 12;"); + } + + if (item.isKey() && item.getReferencesTo() == null) { + setText(item.getColumnName() + "@PK," + item.getDatatype()); + } else if (item.isKey() && item.getReferencesTo() != null) { + setText(item.getColumnName() + "@PFK," + item.getDatatype()); + } else if (item.getReferencesTo() != null) { + setText(item.getColumnName() + "@FK," + item.getDatatype()); + } else { + + setText(item.getColumnName() + "@" + item.getDatatype()); + } + } else { + setText(""); + } + } + }); + this.view.rootColumnNode.setExpanded(true); + this.view.rootColumnNode.getChildren().clear(); + + for (C3 column : table.getSkjdfhgdskjf674534()) { + TreeItem element; + + element = new TreeItem<>(column); + this.view.rootColumnNode.getChildren().add(element); + } + } + + + + + + + + + + public boolean dsfdsdfssdf45645re() { + if (!this.view.generateRelationalModelCB.isSelected()) { + return false; + } + ZZ30 mergedModel; + try { + mergedModel = new ZZ30(this.view, this.graphicElements, this.relationalModel); + if (!mergedModel.lkshjdskjhsdlkjhds()) return false; + this.relationalModel = mergedModel.getRelationalModel(); + } catch (StackOverflowError sofe) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + + + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + + + ImageView treeviewImg = new ImageView(C2.esImage); + treeviewImg.setFitHeight(20.0D); + treeviewImg.setFitWidth(20.0D); + + this.view.rootTableNode = new TreeItem<>(null); + + this.view.treeTableView = new TreeView<>(this.view.rootTableNode); + this.view.treeTableView.setPrefHeight(600.0D); + this.view.treeTableView.setShowRoot(false); + + this.view.treeTableView.setOnKeyReleased(event -> { + @SuppressWarnings("unchecked") TreeView tv = (TreeView)event.getSource(); + TreeItem selectedItem = tv.getSelectionModel().getSelectedItem(); + T1 selectedRelation = selectedItem.getValue(); + A3.this.view.selectModeBTN.setSelected(true); + A3.this.thisERMDrawCanvas.sdfsdfds3465er(true); + A3.this.thisERMDrawCanvas.dsfdsfsdf43543refds(selectedRelation.getReferstoGraphicalElement()); + + A3.this.sfdsfsfdss324243wer(selectedRelation); + }); + + + this.view.treeTableView.setOnMouseClicked(event -> { + @SuppressWarnings("unchecked") TreeView tv = (TreeView)event.getSource(); + TreeItem selectedItem = tv.getSelectionModel().getSelectedItem(); + if (selectedItem != null) { + T1 selectedRelation = selectedItem.getValue(); + A3.this.view.selectModeBTN.setSelected(true); + A3.this.thisERMDrawCanvas.sdfsdfds3465er(true); + A3.this.thisERMDrawCanvas.dsfdsfsdf43543refds(selectedRelation.getReferstoGraphicalElement()); + + A3.this.sfdsfsfdss324243wer(selectedRelation); + } + event.consume(); + }); + + + + + if (this.view.verticalBox.getChildren().size() > 0) { this.view.verticalBox.getChildren().set(0, this.view.treeTableView); } + else { this.view.verticalBox.getChildren().add(this.view.treeTableView); } + this.view.treeTableView.setCellFactory(p -> new TreeCell<>() { + protected void updateItem(T1 item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setStyle("-fx-text-fill: black;-fx-font-size: 11;"); + setText(item.getTablename()); + } else { + setText(""); + } + } + }); + + + this.view.rootTableNode.setExpanded(true); + this.view.rootTableNode.getChildren().clear(); + for (T1 table : mergedModel.getRelationalModel().getTables()) { + TreeItem element; + + element = new TreeItem<>(table); + this.view.rootTableNode.getChildren().add(element); + + for (T1 fktable : mergedModel.getRelationalModel().getTables()) { + for (C3 column : fktable.getSkjdfhgdskjf674534()) { + if (column.getReferencesTo() != null && column.getReferencesTo().tablename().equals(table.getTablename())) { + TreeItem fkTreeItem = new TreeItem<>(fktable); + element.getChildren().add(fkTreeItem); + + break; + } + } + } + } + if (this.view.rootTableNode.getChildren().size() > 0) { + this.view.treeTableView.getSelectionModel().select(0); + T1 selectedRelation = (T1)((TreeItem)this.view.treeTableView.getSelectionModel().getSelectedItem()).getValue(); + this.view.selectModeBTN.setSelected(true); + this.thisERMDrawCanvas.sdfsdfds3465er(true); + this.thisERMDrawCanvas.dsfdsfsdf43543refds(selectedRelation.getReferstoGraphicalElement()); + + sfdsfsfdss324243wer(selectedRelation); + } else { + + this.view.verticalBox.getChildren().clear(); + } + + + return true; + } + + + + + public C4 dsfdsfd45645zr() { + return this.relationalModel; + } + + + + + + + + + private ArrayList getAttributesForVisibility(Graphic_Main_Elem gme) { + ArrayList attributes = new ArrayList<>(); + for (Graphic_Main_Elem gmLooking : this.graphicElements) { + + + if (gmLooking instanceof Graphic_LINE_Elem) { + + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd().sdfsdfsdfd() == gme.sdfsdfsdfd() && ((Graphic_LINE_Elem) gmLooking).getConnectedWithStart() instanceof Graphic_ATTR_Elem gae) { + attributes.add(gae); + } + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithStart().sdfsdfsdfd() == gme.sdfsdfsdfd() && ((Graphic_LINE_Elem) gmLooking).getConnectedWithEnd() instanceof Graphic_ATTR_Elem gae) { + attributes.add(gae); + } + } + } + return attributes; + } + + + + + + + + private ArrayList getKeyAttributesForVisibility(Graphic_Main_Elem gme) { + ArrayList attributes = new ArrayList<>(); + for (Graphic_Main_Elem gmLooking : this.graphicElements) { + + + if (gmLooking instanceof Graphic_LINE_Elem) { + + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithStart() instanceof Graphic_ATTR_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithStart(); + + attributes.add(gae); + } + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithStart().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithEnd() instanceof Graphic_ATTR_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd(); + + attributes.add(gae); + } + } + } + return attributes; + } + + + + + + + + private ArrayList getWeakKeyAttributesForVisibility(Graphic_Main_Elem gme) { + ArrayList attributes = new ArrayList<>(); + for (Graphic_Main_Elem gmLooking : this.graphicElements) { + + + if (gmLooking instanceof Graphic_LINE_Elem) { + + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithStart() instanceof Graphic_ATTR_Weak_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithStart(); + + attributes.add(gae); + } + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithStart().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithEnd() instanceof Graphic_ATTR_Weak_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd(); + + attributes.add(gae); + } + } + } + return attributes; + } + + + + + + + + public void dsfdsfsdf43543refds(long refersToElement) { + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme.sdfsdfsdfd() == refersToElement) { + gme.selectElem(); + return; + } + } + } + + + + + public B3 getView() { + return this.view; + } + + + + + + + + private void dsfsdfds7687683rew(TreeItem item) { + if (item != null && !item.isLeaf()) { + item.setExpanded(false); + for (TreeItem child : item.getChildren()) { + dsfsdfds7687683rew(child); + } + } + } + + + + + public String getInitialDirectory() { + return this.initialDirectory; + } + + + + + public void setInitialDirectory(String initialDirectory) { + this.initialDirectory = initialDirectory; + } + + + + + public ObservableList fsdfdsfds1231278() { + return this.graphicElementsObservable; + } + + + + + public void asdadsa32432rweewr() { + Collections.sort(this.graphicElements); + } + + + + + public void sortGraphicElementsByName() { + this.attributeElements.sort(Comparator.comparing(arg0 -> arg0.sdfsdfsd32234243().toLowerCase())); + } + + + + + + public ArrayList getAttributeElements() { + return this.attributeElements; + } + + + + + public boolean isConnectionModeSet() { + return this.connectionModeSet; + } + + + + + public void setConnectionModeSet(boolean connectionModeSet) { + this.connectionModeSet = connectionModeSet; + } + + + + + public U1 getTabWithCanvas() { + return this.u1; + } +} + + diff --git a/at/fos/ermodel/gui/A4.java b/at/fos/ermodel/gui/A4.java new file mode 100644 index 0000000..2f25a94 --- /dev/null +++ b/at/fos/ermodel/gui/A4.java @@ -0,0 +1,180 @@ + package at.fos.ermodel.gui; + + import javafx.geometry.Insets; + import javafx.scene.Scene; + import javafx.scene.control.Label; + import javafx.scene.control.TextField; + import javafx.scene.layout.GridPane; + import javafx.stage.Modality; + import javafx.stage.Stage; + import javafx.stage.StageStyle; + + public class A4 + extends Stage + { + private final A4 thisActionMessageDialog; + private final TextField minTF; + private final TextField maxTF; + private boolean doNothing; + private final String holdminimum; + private final String holdmaximum; + + public A4(final A3 canvas, double xPos, double yPos, String minimum, String maximum) { + + String title = "Enter Min-Max"; + + this.holdminimum = minimum; + this.holdmaximum = maximum; + + this.doNothing = false; + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + + this.minTF = new TextField(minimum); + this.minTF.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue.length() > 1 && newValue.charAt(0) == '0') { + newValue = newValue.replaceAll("^0*", ""); + if (newValue.length() == 0) + newValue = "0"; + this.minTF.setText(newValue); + } + if (!newValue.matches("\\d*")) + this.minTF.setText(newValue.replaceAll("[^\\d]", "")); + }); + this.minTF.setPrefWidth(50.0D); + this.minTF.setOnMouseEntered(event -> T3.fdssdf4354(A4.this.minTF, C2.MouseSelectedColor)); + this.minTF.setOnMouseExited(event -> A4.this.minTF.setEffect(null)); + + this.minTF.setOnKeyPressed(event -> { + switch (event.getCode()) { + case ENTER -> A4.this.maxTF.requestFocus(); + case ESCAPE -> A4.this.setNothingAndLeave(); + } + + }); + this.maxTF = new TextField(maximum); + this.maxTF.setPrefWidth(50.0D); + this.maxTF.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue.length() == 1 && newValue.charAt(0) == '0') { + newValue = "n"; + this.maxTF.setText(newValue); + return; + } + if (newValue.length() > 1 && !newValue.matches("\\d*")) { + newValue = "n"; + this.maxTF.setText(newValue); + return; + } + if (newValue.length() == 1 && newValue.charAt(0) == 'n') { + newValue = "n"; + this.maxTF.setText(newValue); + return; + } + if (newValue.length() > 1 && newValue.charAt(0) == '0') { + newValue = newValue.replaceAll("^0*", ""); + if (newValue.length() == 0) + newValue = "0"; + this.maxTF.setText(newValue); + return; + } + if (!newValue.matches("\\d*")) + this.maxTF.setText(newValue.replaceAll("[^\\d]", "")); + }); + this.maxTF.setOnMouseEntered(event -> T3.fdssdf4354(A4.this.maxTF, C2.MouseSelectedColor)); + this.maxTF.setOnMouseExited(event -> A4.this.maxTF.setEffect(null)); + this.maxTF.setOnKeyPressed(event -> { + switch (event.getCode()) { + case ENTER -> { + A4.this.setDataAndLeave(); + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + case ESCAPE -> A4.this.setNothingAndLeave(); + } + + }); + GridPane gPane = new GridPane(); + gPane.setPadding(new Insets(10.0D, 10.0D, 10.0D, 10.0D)); + + gPane.setHgap(4.0D); + + gPane.add(new Label("ESC->Cancel"), 0, 0, 2, 1); + gPane.add(new Label("Minimum:"), 0, 1); + gPane.add(this.minTF, 1, 1); + gPane.add(new Label("Maximum:"), 0, 2); + gPane.add(this.maxTF, 1, 2); + + + + + initStyle(StageStyle.UNDECORATED); + Scene scene = new Scene(gPane, 130.0D, 90.0D); + + setScene(scene); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + + this.minTF.requestFocus(); + this.minTF.selectPositionCaret(0); + this.minTF.selectEndOfNextWord(); + sizeToScene(); + showAndWait(); + } + + + + + private void setDataAndLeave() { + if (this.minTF.getText() == null || this.minTF.getText().length() == 0) this.minTF.setText("m"); + if (this.maxTF.getText() == null || this.maxTF.getText().length() == 0) this.maxTF.setText("n"); + this.thisActionMessageDialog.close(); + } + + + + + + private void setNothingAndLeave() { + this.minTF.setText(this.holdminimum); + this.maxTF.setText(this.holdmaximum); + this.doNothing = true; + + this.thisActionMessageDialog.close(); + } + + + + + public TextField getMinTF() { + return this.minTF; + } + + + + + public TextField getMaxTF() { + return this.maxTF; + } + + + + + public boolean isDoNothing() { + return this.doNothing; + } + } + + diff --git a/at/fos/ermodel/gui/A5.java b/at/fos/ermodel/gui/A5.java new file mode 100644 index 0000000..9b1dc41 --- /dev/null +++ b/at/fos/ermodel/gui/A5.java @@ -0,0 +1,117 @@ + package at.fos.ermodel.gui; + + import javafx.geometry.Insets; + import javafx.scene.Scene; + import javafx.scene.control.Label; + import javafx.scene.control.TextField; + import javafx.scene.layout.GridPane; + import javafx.stage.Modality; + import javafx.stage.Stage; + import javafx.stage.StageStyle; + + public class A5 + extends Stage + { + private final A5 thisActionMessageDialog; + private final TextField nameTF; + private boolean doNothing; + private final String holdName; + + public A5(final A3 canvas, double xPos, double yPos, String name) { + + String title = "Enter Name"; + + + this.holdName = name; + this.doNothing = false; + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + + this.nameTF = new TextField(name); + this.nameTF.setOnMouseEntered(event -> T3.fdssdf4354(A5.this.nameTF, C2.MouseSelectedColor)); + this.nameTF.setOnMouseExited(event -> A5.this.nameTF.setEffect(null)); + this.nameTF.setOnKeyPressed(event -> { + switch (event.getCode()) { + case ENTER -> { + A5.this.setDataAndLeave(); + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + case ESCAPE -> A5.this.setNothingAndLeave(); + } + + }); + GridPane fPane = new GridPane(); + fPane.setPadding(new Insets(5.0D, 5.0D, 5.0D, 5.0D)); + + fPane.setVgap(2.0D); + fPane.setHgap(2.0D); + + fPane.add(new Label("ESC->Cancel"), 0, 0, 2, 1); + fPane.add(new Label("Name:"), 0, 1); + fPane.add(this.nameTF, 1, 1); + + + + + + Scene scene = new Scene(fPane, 220.0D, 75.0D); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + + this.nameTF.requestFocus(); + this.nameTF.selectPositionCaret(0); + this.nameTF.selectEndOfNextWord(); + initStyle(StageStyle.UNDECORATED); + + setScene(scene); + sizeToScene(); + showAndWait(); + } + + + + + private void setDataAndLeave() { + if (this.nameTF.getText() == null || this.nameTF.getText().length() == 0) + return; this.thisActionMessageDialog.close(); + } + + + + + private void setNothingAndLeave() { + this.nameTF.setText(this.holdName); + this.doNothing = true; + this.thisActionMessageDialog.close(); + } + + + + + public TextField getNameTF() { + return this.nameTF; + } + + + + + public boolean isDoNothing() { + return this.doNothing; + } + } + + diff --git a/at/fos/ermodel/gui/A6.java b/at/fos/ermodel/gui/A6.java new file mode 100644 index 0000000..4f711aa --- /dev/null +++ b/at/fos/ermodel/gui/A6.java @@ -0,0 +1,206 @@ + package at.fos.ermodel.gui; + + import javafx.event.EventHandler; + import javafx.geometry.Insets; + import javafx.scene.Scene; + import javafx.scene.control.Label; + import javafx.scene.control.TextField; + import javafx.scene.input.KeyEvent; + import javafx.scene.layout.GridPane; + import javafx.stage.Modality; + import javafx.stage.Stage; + import javafx.stage.StageStyle; + + + + + + + + + + + + + + + + + + + + + + public class A6 + extends Stage + { + private final A6 thisActionMessageDialog; + private final TextField p_tTF; + private final TextField d_ndTF; + private boolean doNothing; + private final String holdpartial_or_total; + private final String holddisjunct_or_notdisjunct; + + public A6(final A3 canvas, double xPos, double yPos, String partial_or_total, String disjunct_or_notdisjunct) { + + String title = "Enter P-T-D-ND"; + + this.doNothing = false; + + if (partial_or_total == null) partial_or_total = "p"; + if (disjunct_or_notdisjunct == null) disjunct_or_notdisjunct = "nd"; + this.holdpartial_or_total = partial_or_total; + this.holddisjunct_or_notdisjunct = disjunct_or_notdisjunct; + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + + this.p_tTF = new TextField(partial_or_total); + this.p_tTF.setPrefWidth(50.0D); + this.p_tTF.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue.length() == 1 && newValue.charAt(0) != 'p' && newValue.charAt(0) != 't') { + newValue = "p"; + + this.p_tTF.setText(newValue); + + return; + } + if (newValue.length() > 1) { + newValue = oldValue; + this.p_tTF.setText(newValue); + return; + } + if (newValue.length() == 1 && (newValue.charAt(0) == 'p' || newValue.charAt(0) == 't')) { + this.p_tTF.setText(newValue); + } + }); + this.p_tTF.setOnMouseEntered(event -> T3.fdssdf4354(A6.this.p_tTF, C2.MouseSelectedColor)); + this.p_tTF.setOnMouseExited(event -> A6.this.p_tTF.setEffect(null)); + this.p_tTF.setOnKeyPressed(new EventHandler<>() { + + public void handle(KeyEvent event) { + switch (event.getCode()) { + case ENTER -> A6.this.d_ndTF.requestFocus(); + case ESCAPE -> A6.this.setNothingAndLeave(); + } + + } + }); + this.d_ndTF = new TextField(disjunct_or_notdisjunct); + this.d_ndTF.setPrefWidth(50.0D); + this.d_ndTF.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue.length() == 1 && newValue.charAt(0) != 'd') { + newValue = "d"; + + this.d_ndTF.setText(newValue); + return; + } + if (newValue.length() == 2 && !newValue.equals("nd")) { + newValue = "nd"; + this.d_ndTF.setText(newValue); + return; + } + if (newValue.length() > 2) { + newValue = oldValue; + this.d_ndTF.setText(newValue); + return; + } + if (newValue.length() == 1 && newValue.charAt(0) == 'd') { + this.d_ndTF.setText(newValue); + } + }); + this.d_ndTF.setOnMouseEntered(event -> T3.fdssdf4354(A6.this.d_ndTF, C2.MouseSelectedColor)); + this.d_ndTF.setOnMouseExited(event -> A6.this.d_ndTF.setEffect(null)); + this.d_ndTF.setOnKeyPressed(event -> { + switch (event.getCode()) { + case ENTER -> { + A6.this.setDataAndLeave(); + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + case ESCAPE -> A6.this.setNothingAndLeave(); + } + + }); + GridPane gPane = new GridPane(); + gPane.setPadding(new Insets(10.0D, 10.0D, 10.0D, 10.0D)); + + gPane.setHgap(4.0D); + + gPane.add(new Label("ESC->Cancel"), 0, 0); + gPane.add(new Label("Partial[p]/Total[t]:"), 0, 1); + gPane.add(this.p_tTF, 1, 1); + gPane.add(new Label("Disjunct[d]/Not disjunct[nd]:"), 0, 2); + gPane.add(this.d_ndTF, 1, 2); + + + + + initStyle(StageStyle.UNDECORATED); + Scene scene = new Scene(gPane, 230.0D, 90.0D); + + setScene(scene); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + + this.p_tTF.requestFocus(); + this.p_tTF.selectPositionCaret(0); + this.p_tTF.selectEndOfNextWord(); + + sizeToScene(); + showAndWait(); + } + + + + + private void setDataAndLeave() { + if (this.p_tTF.getText() == null || this.p_tTF.getText().length() == 0) this.p_tTF.setText("p"); + if (this.d_ndTF.getText() == null || this.d_ndTF.getText().length() == 0) this.d_ndTF.setText("nd"); + this.thisActionMessageDialog.close(); + } + + + + + private void setNothingAndLeave() { + this.p_tTF.setText(this.holdpartial_or_total); + this.d_ndTF.setText(this.holddisjunct_or_notdisjunct); + this.doNothing = true; + + this.thisActionMessageDialog.close(); + } + + + + + public TextField getP_tTF() { + return this.p_tTF; + } + + + + + public TextField getD_ndTF() { + return this.d_ndTF; + } + + + + + public boolean isDoNothing() { + return this.doNothing; + } + } \ No newline at end of file diff --git a/at/fos/ermodel/gui/A7.java b/at/fos/ermodel/gui/A7.java new file mode 100644 index 0000000..c52339c --- /dev/null +++ b/at/fos/ermodel/gui/A7.java @@ -0,0 +1,160 @@ + package at.fos.ermodel.gui; + + import javafx.geometry.Insets; + import javafx.scene.Scene; + import javafx.scene.control.Label; + import javafx.scene.control.TextArea; + import javafx.scene.input.KeyCode; + import javafx.scene.input.KeyCodeCombination; + import javafx.scene.input.KeyCombination; + import javafx.scene.layout.GridPane; + import javafx.stage.Modality; + import javafx.stage.Stage; + import javafx.stage.StageStyle; + + + + + + + + + + + + + + + + + + + + + + + public class A7 + extends Stage + { + private final A7 thisActionMessageDialog; + private final TextArea textTA; + private boolean doNothing; + private final String holdName; + final KeyCombination keyCombinationALT_ENTER = new KeyCodeCombination(KeyCode.ENTER, KeyCombination.ALT_DOWN); + + + + + + + + public A7(final A3 canvas, double xPos, double yPos, String name) { + + String title = "Enter Name"; + + + this.holdName = name; + + this.doNothing = false; + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + this.textTA = new TextArea(name); + this.textTA.setPrefWidth(350.0D); + this.textTA.setPrefHeight(100.0D); + this.textTA.setOnMouseEntered(event -> T3.fdssdf4354(A7.this.textTA, C2.MouseSelectedColor)); + this.textTA.setOnMouseExited(event -> A7.this.textTA.setEffect(null)); + this.textTA.setOnKeyPressed(event -> { + if (A7.this.keyCombinationALT_ENTER.match(event)) { + A7.this.textTA.appendText("\n"); + event.consume(); + return; + } + switch (event.getCode()) { + case ENTER -> { + event.consume(); + A7.this.setDataAndLeave(); + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + case ESCAPE -> A7.this.setNothingAndLeave(); + } + + + }); + GridPane fPane = new GridPane(); + fPane.setPadding(new Insets(10.0D, 10.0D, 10.0D, 10.0D)); + + fPane.setHgap(4.0D); + + fPane.add(new Label("ESC->Cancel, Alt-Enter->Linefeed"), 0, 0, 2, 1); + fPane.add(this.textTA, 0, 1); + + + + initStyle(StageStyle.UNDECORATED); + Scene scene = new Scene(fPane, 370.0D, 150.0D); + + setScene(scene); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + + this.textTA.requestFocus(); + + + sizeToScene(); + showAndWait(); + } + + + + + + private void setDataAndLeave() { + if (this.textTA.getText() == null || this.textTA.getText().length() == 0) { + this.textTA.setText(""); + + + return; + } + + this.thisActionMessageDialog.close(); + } + + + + + private void setNothingAndLeave() { + this.textTA.setText(this.holdName); + this.doNothing = true; + this.thisActionMessageDialog.close(); + } + + + + + public TextArea getTextTA() { + return this.textTA; + } + + + + + public boolean isDoNothing() { + return this.doNothing; + } + } + + diff --git a/at/fos/ermodel/gui/A8.java b/at/fos/ermodel/gui/A8.java new file mode 100644 index 0000000..b3b6564 --- /dev/null +++ b/at/fos/ermodel/gui/A8.java @@ -0,0 +1,830 @@ +package at.fos.ermodel.gui; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Insets; +import javafx.scene.Cursor; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.input.KeyCode; +import javafx.scene.input.MouseButton; +import javafx.scene.layout.*; +import javafx.stage.FileChooser; +import javafx.stage.Modality; +import javafx.stage.Stage; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.Objects; +import java.util.Optional; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +public class A8 + extends Stage +{ + private final A8 thisActionMessageDialog; + private final TextField nameTF; + private final CheckBox createColumnCB; + private final TextField columnNameTF; + private final TextField columnPostfixTF; + private final TextField datatypeTF; + private final CheckBox isAutoincrementCB; + private final TextField autoincrementStartAtTF; + private final CheckBox isKeyCB; + private final CheckBox isNullableCB; + private final CheckBox isUniqueCB; + private final ComboBox dataGenerationTypeCoB; + private final Label par1LBL; + private final TextField par1TF; + private final Label par2LBL; + private final TextField par2TF; + private final Button okBTN; + private Button cancelBTN; + private final String holdName; + private final boolean holdcreateColumn; + private final String holdcolumnName; + private final String holdcolumnPostfix; + private final String holddatatype; + private final boolean holdisAutoincrement; + private final long holdAutoincrementStartAt; + private final boolean holdisKey; + private final boolean holdisNullable; + private final boolean holdisUnique; + private final String holddatagenerationtype; + private final String holdpar1_label; + private final String holdpar1; + private final String holdpar2_label; + private final String holdpar2; + + public A8(final A3 canvas, double xPos, double yPos, String name, boolean createColumn, String columnName, String columnPostfix, String datatype, boolean isWeakKey, boolean isAutoincrement, long autoincrementStartAt, boolean isKey, boolean isNullable, boolean isUnique, String dataGenerationType, String par1, String par1_label, String par2, String par2_label) { + String title = "Attribute Transformation"; + + + this.holdName = name; + this.holdcreateColumn = createColumn; + this.holdcolumnName = columnName; + this.holdcolumnPostfix = columnPostfix; + this.holddatatype = datatype; + this.holdisAutoincrement = isAutoincrement; + this.holdAutoincrementStartAt = autoincrementStartAt; + this.holdisKey = isKey; + this.holdisNullable = isNullable; + this.holdisUnique = isUnique; + this.holddatagenerationtype = dataGenerationType; + this.holdpar1_label = par1_label; + this.holdpar1 = par1; + this.holdpar2_label = par2_label; + this.holdpar2 = par2; + + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + + + this.nameTF = new TextField(name); + this.nameTF.setPrefWidth(150.0D); + this.nameTF.setMaxWidth(150.0D); + this.nameTF.setDisable(true); + + + + this.createColumnCB = new CheckBox(); + this.createColumnCB.setSelected(false); + if (createColumn) this.createColumnCB.setSelected(true); + this.createColumnCB.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.createColumnCB, C2.MouseSelectedColor)); + this.createColumnCB.setOnMouseExited(event -> A8.this.createColumnCB.setEffect(null)); + + this.columnPostfixTF = new TextField(columnPostfix); + this.columnPostfixTF.setPrefWidth(150.0D); + this.columnPostfixTF.setMaxWidth(150.0D); + this.columnPostfixTF.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.columnPostfixTF, C2.MouseSelectedColor)); + this.columnPostfixTF.setOnMouseExited(event -> A8.this.columnPostfixTF.setEffect(null)); + + this.columnNameTF = new TextField(columnName); + this.columnNameTF.setPrefWidth(150.0D); + this.columnNameTF.setMaxWidth(150.0D); + this.columnNameTF.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.columnNameTF, C2.MouseSelectedColor)); + this.columnNameTF.setOnMouseExited(event -> A8.this.columnNameTF.setEffect(null)); + + this.datatypeTF = new TextField(datatype); + this.datatypeTF.setPrefWidth(150.0D); + this.datatypeTF.setMaxWidth(150.0D); + this.datatypeTF.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.datatypeTF, C2.MouseSelectedColor)); + this.datatypeTF.setOnMouseExited(event -> A8.this.datatypeTF.setEffect(null)); + + this.isAutoincrementCB = new CheckBox(); + this.isAutoincrementCB.setSelected(false); + if (isAutoincrement) this.isAutoincrementCB.setSelected(true); + this.isAutoincrementCB.setDisable(true); + + if (isKey && !isWeakKey) this.isAutoincrementCB.setDisable(false); + this.isAutoincrementCB.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.isAutoincrementCB, C2.MouseSelectedColor)); + this.isAutoincrementCB.setOnMouseExited(event -> A8.this.isAutoincrementCB.setEffect(null)); + this.isAutoincrementCB.setOnAction(event -> { + if (A8.this.isAutoincrementCB.isSelected()) { + A8.this.datatypeTF.setText("bigint"); + A8.this.autoincrementStartAtTF.setDisable(false); + A8.this.autoincrementStartAtTF.setText("1"); + A8.this.datatypeTF.setDisable(true); + A8.this.dataGenerationTypeCoB.setDisable(true); + A8.this.par1TF.setDisable(true); + A8.this.par2TF.setDisable(true); + } else { + + A8.this.datatypeTF.setDisable(false); + A8.this.autoincrementStartAtTF.setDisable(true); + A8.this.dataGenerationTypeCoB.setDisable(false); + A8.this.par1TF.setDisable(false); + A8.this.par2TF.setDisable(false); + } + }); + + if (!isAutoincrement) autoincrementStartAt = 1L; + this.autoincrementStartAtTF = new TextField(String.valueOf(autoincrementStartAt)); + this.autoincrementStartAtTF.setPrefWidth(100.0D); + this.autoincrementStartAtTF.setMaxWidth(100.0D); + this.autoincrementStartAtTF.setDisable(true); + if (isAutoincrement) this.autoincrementStartAtTF.setDisable(false); + this.autoincrementStartAtTF.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.autoincrementStartAtTF, C2.MouseSelectedColor)); + this.autoincrementStartAtTF.setOnMouseExited(event -> A8.this.autoincrementStartAtTF.setEffect(null)); + + this.isKeyCB = new CheckBox(); + this.isKeyCB.setSelected(false); + if (isKey) this.isKeyCB.setSelected(true); + this.isKeyCB.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.isKeyCB, C2.MouseSelectedColor)); + this.isKeyCB.setOnMouseExited(event -> A8.this.isKeyCB.setEffect(null)); + + this.isNullableCB = new CheckBox(); + this.isNullableCB.setSelected(false); + if (isNullable) this.isNullableCB.setSelected(true); + this.isNullableCB.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.isNullableCB, C2.MouseSelectedColor)); + this.isNullableCB.setOnMouseExited(event -> A8.this.isNullableCB.setEffect(null)); + + this.isUniqueCB = new CheckBox(); + this.isUniqueCB.setSelected(false); + if (isUnique) this.isUniqueCB.setSelected(true); + this.isUniqueCB.setOnMouseEntered(event -> T3.fdssdf4354(A8.this.isUniqueCB, C2.MouseSelectedColor)); + this.isUniqueCB.setOnMouseExited(event -> A8.this.isUniqueCB.setEffect(null)); + + + + + ObservableList possibleGenerations = + FXCollections.observableArrayList(T3.dsfsdfsdf4353534); + this.dataGenerationTypeCoB = new ComboBox<>(possibleGenerations); + + + if (dataGenerationType == null) { + this.dataGenerationTypeCoB.getSelectionModel().select(0); + this.par1TF = new TextField(""); this.par1TF.setDisable(true); + this.par1LBL = new Label(""); + this.par2TF = new TextField(""); this.par2TF.setDisable(true); + this.par2LBL = new Label(""); + } else { + + this.dataGenerationTypeCoB.getSelectionModel().select(dataGenerationType); + this.par1TF = new TextField(par1); this.par1TF.setDisable(true); + this.par1LBL = new Label(par1_label); + this.par2TF = new TextField(par2); this.par2TF.setDisable(true); + this.par2LBL = new Label(par2_label); + setVisibilityForGenerationtype(); + } + + this.par2TF.setOnMousePressed(event -> { + if (!A8.this.dataGenerationTypeCoB.getSelectionModel().getSelectedItem().equals("Extern")) + return; if (event.getButton() == MouseButton.SECONDARY) { + event.consume(); + FileChooser fc = new FileChooser(); + fc.setInitialDirectory(new File(System.getProperty("user.home"))); + fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("*.txt", "*.TXT")); + File file = fc.showOpenDialog(A8.this.thisActionMessageDialog); + if (file != null) { + A8.this.par2TF.setText(file.getAbsolutePath()); + } + } + A8.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(A8.this.okBTN, C2.MouseSelectedColor); + }); + + this.dataGenerationTypeCoB.setOnAction(event -> A8.this.setSelectionForGenerationtype()); + + + this.okBTN = new Button("Ok"); + this.okBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + this.okBTN.setOnMouseEntered(event -> { + A8.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(A8.this.okBTN, C2.MouseSelectedColor); + }); + this.okBTN.setOnMouseExited(event -> { + A8.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + A8.this.okBTN.setEffect(null); + if (A8.this.okBTN.isFocused()) T3.fdssdf4354(A8.this.okBTN, C2.FocusOnComponentColor); + }); + this.okBTN.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (this.okBTN.isFocused()) { + T3.fdssdf4354(this.okBTN, C2.FocusOnComponentColor); + + this.columnPostfixTF.setEffect(null); + + this.cancelBTN.setEffect(null); + } else { + this.okBTN.setEffect(null); + } + }); + this.okBTN.setOnAction(event -> { + A8.this.setDataAndLeave(); + + if (!canvas.getTabWithCanvas().getText().contains("*")) canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + }); + this.okBTN.setOnKeyPressed(event -> { + if (Objects.requireNonNull(event.getCode()) == KeyCode.ENTER) { + A8.this.setDataAndLeave(); + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + + + + }); + this.cancelBTN = new Button("Cancel"); + this.cancelBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + this.cancelBTN.setOnMouseEntered(event -> { + A8.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(A8.this.cancelBTN, C2.MouseSelectedColor); + }); + this.cancelBTN.setOnMouseExited(event -> { + A8.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + A8.this.cancelBTN.setEffect(null); + if (A8.this.cancelBTN.isFocused()) T3.fdssdf4354(A8.this.cancelBTN, C2.FocusOnComponentColor); + + }); + this.cancelBTN.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (this.cancelBTN.isFocused()) { + T3.fdssdf4354(this.cancelBTN, C2.FocusOnComponentColor); + + this.columnPostfixTF.setEffect(null); + this.okBTN.setEffect(null); + } else { + this.cancelBTN.setEffect(null); + } + }); + this.cancelBTN.setOnAction(event -> A8.this.setNothingAndLeave()); + this.cancelBTN.setOnKeyPressed(event -> { + if (Objects.requireNonNull(event.getCode()) == KeyCode.ENTER) { + A8.this.setNothingAndLeave(); + } + + + }); + if (isKey) { + this.isKeyCB.setDisable(true); + this.isUniqueCB.setDisable(true); + this.createColumnCB.setDisable(true); + this.isNullableCB.setDisable(true); + } else { + + this.isKeyCB.setDisable(true); + } + + + + GridPane gridPane = new GridPane(); + + gridPane.setPadding(new Insets(10.0D, 10.0D, 10.0D, 10.0D)); + gridPane.setVgap(4.0D); + gridPane.setHgap(4.0D); + + Label lbl = new Label("Name:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 0); + gridPane.add(this.nameTF, 1, 0); + lbl = new Label("Create column:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 1); + gridPane.add(this.createColumnCB, 1, 1); + lbl = new Label("Column name:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 2); + gridPane.add(this.columnNameTF, 1, 2); + lbl = new Label("Column postfix:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 3); + gridPane.add(this.columnPostfixTF, 1, 3); + lbl = new Label("Column datatype:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 4); + gridPane.add(this.datatypeTF, 1, 4); + lbl = new Label("Key:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 5); + gridPane.add(this.isKeyCB, 1, 5); + lbl = new Label("Autoincrement:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 6); + FlowPane fp = new FlowPane(); + fp.getChildren().add(this.isAutoincrementCB); + fp.getChildren().add(this.autoincrementStartAtTF); + gridPane.add(fp, 1, 6); + lbl = new Label("Nullable:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 7); + gridPane.add(this.isNullableCB, 1, 7); + lbl = new Label("Unique:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 8); + gridPane.add(this.isUniqueCB, 1, 8); + lbl = new Label("Data generation:"); + lbl.setPrefWidth(100.0D); + lbl.setMinWidth(100.0D); + gridPane.add(lbl, 0, 9); + gridPane.add(this.dataGenerationTypeCoB, 1, 9); + + GridPane parameterGP = new GridPane(); + this.par1LBL.setPrefWidth(150.0D); + this.par2LBL.setMaxWidth(150.0D); + this.par1TF.setPrefWidth(150.0D); + this.par2TF.setMaxWidth(150.0D); + parameterGP.add(this.par1LBL, 0, 0); + parameterGP.add(this.par2LBL, 1, 0); + parameterGP.add(this.par1TF, 0, 1); + parameterGP.add(this.par2TF, 1, 1); + + gridPane.add(parameterGP, 0, 10, 2, 1); + + + fp = new FlowPane(); + fp.setHgap(10.0D); + fp.getChildren().addAll(this.okBTN, this.cancelBTN); + gridPane.add(fp, 0, 11, 2, 1); + + + + + + Scene scene = new Scene(gridPane, 280.0D, 355.0D); + setScene(scene); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + sizeToScene(); + + this.columnNameTF.requestFocus(); + + + + + if (isAutoincrement) { + this.dataGenerationTypeCoB.setDisable(true); + this.par1TF.setDisable(true); + this.par2TF.setDisable(true); + } + showAndWait(); + } + + + + + private void setDataAndLeave() { + if (this.createColumnCB.isSelected()) { + if (this.columnNameTF.getText() == null || this.columnNameTF.getText().length() == 0) { + return; + } + + + + + + + + + + + + + if (this.datatypeTF.getText() == null || this.datatypeTF.getText().length() == 0) { + return; + } + } + + + + + + + + + + + + + + + if (this.dataGenerationTypeCoB.getSelectionModel().getSelectedItem().equals("Extern")) { + BufferedReader br = C2.randomDataFilesExtern.get(this.par1TF.getText()); + + if (br == null) + { + try { + BufferedReader fr = new BufferedReader(new InputStreamReader(new FileInputStream(this.par2TF.getText()), StandardCharsets.UTF_8)); + + C2.randomDataFilesExtern.put(this.par1TF.getText(), fr); + this.thisActionMessageDialog.close(); + } catch (FileNotFoundException ignored) {} + + + + + + + + + } + else + { + + + + + + + + C1 alert = new C1(null, + Alert.AlertType.CONFIRMATION, + "Input Transformation Data", + "", + "Key exists: " + this.par1TF.getText(), + Boolean.TRUE, + C2.applicationImageIconAsICO, + "OK", + "Cancel", + C2.ButtonBackgroundColor, + C2.MouseSelectedColor, + C2.FocusOnComponentColor); + + Optional result = alert.getResult(); + + + if (result.isPresent() && result.get() == ButtonType.OK) + { + this.thisActionMessageDialog.close(); + } + } + + } else { + + this.thisActionMessageDialog.close(); + } + } + + + + private void setNothingAndLeave() { + this.nameTF.setText(this.holdName); + this.createColumnCB.setSelected(this.holdcreateColumn); + this.columnNameTF.setText(this.holdcolumnName); + this.columnPostfixTF.setText(this.holdcolumnPostfix); + this.datatypeTF.setText(this.holddatatype); + this.isAutoincrementCB.setSelected(this.holdisAutoincrement); + this.autoincrementStartAtTF.setText(String.valueOf(this.holdAutoincrementStartAt)); + this.isKeyCB.setSelected(this.holdisKey); + this.isNullableCB.setSelected(this.holdisNullable); + this.isUniqueCB.setSelected(this.holdisUnique); + + this.dataGenerationTypeCoB.getSelectionModel().select(this.holddatagenerationtype); + this.par1LBL.setText(this.holdpar1_label); + this.par1TF.setText(this.holdpar1); + this.par2LBL.setText(this.holdpar2_label); + this.par2TF.setText(this.holdpar2); + + this.thisActionMessageDialog.close(); + } + + + public CheckBox getCreateColumnCB() { + return this.createColumnCB; + } + + + + + public TextField getColumnNameTF() { + return this.columnNameTF; + } + + + + + public TextField getColumnPostfixTF() { + return this.columnPostfixTF; + } + + + + + public TextField getDatatypeTF() { + return this.datatypeTF; + } + + + + + public CheckBox getIsAutoincrementCB() { + return this.isAutoincrementCB; + } + + + + + public CheckBox getIsKeyCB() { + return this.isKeyCB; + } + + + + + public CheckBox getIsNullableCB() { + return this.isNullableCB; + } + + + + + public CheckBox getIsUniqueCB() { + return this.isUniqueCB; + } + + + + + public ComboBox getDataGenerationTypeCoB() { + return this.dataGenerationTypeCoB; + } + + + + + public Label getPar1LBL() { + return this.par1LBL; + } + + + + + public TextField getPar1TF() { + return this.par1TF; + } + + + + + public Label getPar2LBL() { + return this.par2LBL; + } + + + + + public TextField getPar2TF() { + return this.par2TF; + } + + + public TextField getAutoincrementStartAtTF() { + return this.autoincrementStartAtTF; + } + + private void setSelectionForGenerationtype() { + if (this.dataGenerationTypeCoB.getSelectionModel().getSelectedItem() == null) + return; String str; + switch ((str = this.dataGenerationTypeCoB.getSelectionModel().getSelectedItem()).hashCode()) { + case -1601184309 -> { + if (!str.equals("Random Boolean")) { + break; + } + this.par1TF.setText(""); + this.par1LBL.setText(""); + this.par1TF.setDisable(true); + this.par2TF.setText(""); + this.par2LBL.setText(""); + this.par2TF.setDisable(true); + this.datatypeTF.setText("boolean"); + return; + } + case -123632396 -> { + if (!str.equals("Random Decimal")) + break; + this.par1TF.setText("5"); + this.par1LBL.setText("Before[.]"); + this.par1TF.setDisable(false); + this.par2TF.setText("2"); + this.par2LBL.setText("After[.]"); + this.par2TF.setDisable(false); + this.datatypeTF.setText("decimal(7,2)"); + return; + } + case 2529 -> { + if (!str.equals("No")) + break; + this.par1TF.setText(""); + this.par1LBL.setText(""); + this.par1TF.setDisable(true); + this.par2TF.setText(""); + this.par2LBL.setText(""); + this.par2TF.setDisable(true); + return; + } + case 292156129 -> { + if (!str.equals("Random Integer")) + break; + this.par1TF.setText("0"); + this.par1LBL.setText("From"); + this.par1TF.setDisable(false); + this.par2TF.setText("1000"); + this.par2LBL.setText("Till"); + this.par2TF.setDisable(false); + this.datatypeTF.setText("int"); + return; + } + case 908695787 -> { + if (!str.equals("Random Date")) + break; + this.par1TF.setText("1.1.1940"); + this.par1LBL.setText("From"); + this.par1TF.setDisable(false); + this.par2TF.setText("31.12.2020"); + this.par2LBL.setText("Till"); + this.par2TF.setDisable(false); + this.datatypeTF.setText("date"); + return; + } + case 909176426 -> { + if (!str.equals("Random Text")) + break; + this.par1TF.setText("100"); + this.par1LBL.setText("Text length"); + this.par1TF.setDisable(false); + this.par2TF.setText(""); + this.par2LBL.setText(""); + this.par2TF.setDisable(true); + this.datatypeTF.setText("varchar(100)"); + return; + } + case 1599784748 -> { + if (!str.equals("Incremented Integer")) + break; + this.par1TF.setText("0"); + this.par1LBL.setText("From"); + this.par1TF.setDisable(false); + this.par2TF.setText(""); + this.par2LBL.setText(""); + this.par2TF.setDisable(true); + this.datatypeTF.setText("int"); + return; + } + case 2089790400 -> { + if (!str.equals("Extern")) + break; + this.par1TF.setText(""); + this.par1LBL.setText("Key"); + this.par1TF.setDisable(false); + this.par2TF.setText(""); + this.par2LBL.setText("Path/File"); + this.par2TF.setDisable(false); + return; + } + } + this.par1TF.setText(""); this.par1LBL.setText(""); this.par1TF.setDisable(true); + this.par2TF.setText(""); this.par2LBL.setText(""); this.par2TF.setDisable(true); + } + + private void setVisibilityForGenerationtype() { + String str; + switch ((str = this.dataGenerationTypeCoB.getSelectionModel().getSelectedItem()).hashCode()) { + case -123632396 -> { + if (!str.equals("Random Decimal")) { + break; + } + this.par1LBL.setText("Before[.]"); + this.par1TF.setDisable(false); + this.par2LBL.setText("After[.]"); + this.par2TF.setDisable(false); + return; + } + case 2529 -> { + if (!str.equals("No")) + break; + this.par1TF.setDisable(true); + this.par2TF.setDisable(true); + return; + } + case 292156129 -> { + if (!str.equals("Random Integer")) + break; + this.par1LBL.setText("From"); + this.par1TF.setDisable(false); + this.par2LBL.setText("Till"); + this.par2TF.setDisable(false); + return; + } + case 908695787 -> { + if (!str.equals("Random Date")) + break; + this.par1LBL.setText("From"); + this.par1TF.setDisable(false); + this.par2LBL.setText("Till"); + this.par2TF.setDisable(false); + return; + } + case 909176426 -> { + if (!str.equals("Random Text")) + break; + this.par1LBL.setText("Text length"); + this.par1TF.setDisable(false); + this.par2LBL.setText(""); + this.par2TF.setDisable(true); + return; + } + case 1599784748 -> { + if (!str.equals("Incremented Integer")) + break; + this.par1LBL.setText("From"); + this.par1TF.setDisable(false); + this.par2LBL.setText(""); + this.par2TF.setDisable(true); + return; + } + case 2089790400 -> { + if (!str.equals("Extern")) + break; + this.par1LBL.setText("Key"); + this.par1TF.setDisable(false); + this.par2LBL.setText("Path/File"); + this.par2TF.setDisable(false); + return; + } + } + this.par1TF.setText(""); this.par1LBL.setText(""); this.par1TF.setDisable(true); + this.par2TF.setText(""); this.par2LBL.setText(""); this.par2TF.setDisable(true); + } +} + + diff --git a/at/fos/ermodel/gui/A9.java b/at/fos/ermodel/gui/A9.java new file mode 100644 index 0000000..a16b24c --- /dev/null +++ b/at/fos/ermodel/gui/A9.java @@ -0,0 +1,248 @@ + package at.fos.ermodel.gui; + + import javafx.event.ActionEvent; + import javafx.event.EventHandler; + import javafx.geometry.Insets; + import javafx.scene.Cursor; + import javafx.scene.Scene; + import javafx.scene.control.Button; + import javafx.scene.control.CheckBox; + import javafx.scene.control.Label; + import javafx.scene.control.TextField; + import javafx.scene.input.KeyCode; + import javafx.scene.layout.*; + import javafx.stage.Modality; + import javafx.stage.Stage; + + import java.util.Objects; + + + public class A9 + extends Stage + { + private final A9 thisActionMessageDialog; + private final TextField nameTF; + private final CheckBox createRelationCB; + private final TextField relationNameTF; + private final TextField relationPraefixTF; + private final CheckBox createInsertStatementsCB; + private final TextField numberRowsToInsertTF; + private final Button okBTN; + private Button cancelBTN; + private final String holdName; + + public A9(final A3 canvas, double xPos, double yPos, String name, boolean createRelation, String relationName, String relationPraefix, boolean createInsertStatements, long numberRowsToInsert, boolean setCreationRelationChangeable) { + + String title = "ES/RS Transformation"; + + + this.holdName = name; + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + + this.nameTF = new TextField(name); + this.nameTF.setDisable(true); + + + this.createRelationCB = new CheckBox(); + this.createRelationCB.setSelected(false); + + if (!setCreationRelationChangeable) this.createRelationCB.setDisable(true); + if (createRelation) this.createRelationCB.setSelected(true); + + this.relationPraefixTF = new TextField(relationPraefix); + this.relationPraefixTF.setOnMouseEntered(event -> T3.fdssdf4354(A9.this.relationPraefixTF, C2.MouseSelectedColor)); + this.relationPraefixTF.setOnMouseExited(event -> A9.this.relationPraefixTF.setEffect(null)); + this.relationNameTF = new TextField(relationName); + this.relationNameTF.setOnMouseEntered(event -> T3.fdssdf4354(A9.this.relationNameTF, C2.MouseSelectedColor)); + this.relationNameTF.setOnMouseExited(event -> A9.this.relationNameTF.setEffect(null)); + + + this.createInsertStatementsCB = new CheckBox(); + this.createInsertStatementsCB.setSelected(true); + this.createInsertStatementsCB.setDisable(true); + if (createInsertStatements) this.createInsertStatementsCB.setSelected(true); + this.createInsertStatementsCB.setOnAction(new EventHandler<>() { + public void handle(ActionEvent event) { + A9.this.numberRowsToInsertTF.setDisable(!A9.this.createInsertStatementsCB.isSelected()); + } + }); + this.numberRowsToInsertTF = new TextField(String.valueOf(numberRowsToInsert)); + this.numberRowsToInsertTF.setDisable(true); + if (createInsertStatements) this.numberRowsToInsertTF.setDisable(false); + + this.okBTN = new Button("Ok"); + this.okBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + this.okBTN.setOnMouseEntered(event -> { + A9.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(A9.this.okBTN, C2.MouseSelectedColor); + }); + this.okBTN.setOnMouseExited(event -> { + A9.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + A9.this.okBTN.setEffect(null); + if (A9.this.okBTN.isFocused()) T3.fdssdf4354(A9.this.okBTN, C2.FocusOnComponentColor); + }); + this.okBTN.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (this.okBTN.isFocused()) { + T3.fdssdf4354(this.okBTN, C2.FocusOnComponentColor); + + this.relationPraefixTF.setEffect(null); + + this.cancelBTN.setEffect(null); + } else { + this.okBTN.setEffect(null); + } + }); + this.okBTN.setOnAction(event -> { + A9.this.setDataAndLeave(); + + if (!canvas.getTabWithCanvas().getText().contains("*")) canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + }); + this.okBTN.setOnKeyPressed(event -> { + if (Objects.requireNonNull(event.getCode()) == KeyCode.ENTER) { + A9.this.setDataAndLeave(); + + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + + + + }); + this.cancelBTN = new Button("Cancel"); + this.cancelBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + this.cancelBTN.setOnMouseEntered(event -> { + A9.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(A9.this.cancelBTN, C2.MouseSelectedColor); + }); + this.cancelBTN.setOnMouseExited(event -> { + A9.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + A9.this.cancelBTN.setEffect(null); + if (A9.this.cancelBTN.isFocused()) T3.fdssdf4354(A9.this.cancelBTN, C2.FocusOnComponentColor); + + }); + this.cancelBTN.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (this.cancelBTN.isFocused()) { + T3.fdssdf4354(this.cancelBTN, C2.FocusOnComponentColor); + + this.relationPraefixTF.setEffect(null); + this.okBTN.setEffect(null); + } else { + this.cancelBTN.setEffect(null); + } + }); + this.cancelBTN.setOnAction(event -> A9.this.setNothingAndLeave()); + this.cancelBTN.setOnKeyPressed(event -> { + if (Objects.requireNonNull(event.getCode()) == KeyCode.ENTER) { + A9.this.setNothingAndLeave(); + } + + + }); + GridPane gridPane = new GridPane(); + gridPane.setPadding(new Insets(10.0D, 10.0D, 10.0D, 10.0D)); + gridPane.setVgap(4.0D); + gridPane.setHgap(4.0D); + + gridPane.add(new Label("Name:"), 0, 0); + gridPane.add(this.nameTF, 1, 0); + gridPane.add(new Label("Create relation:"), 0, 1); + gridPane.add(this.createRelationCB, 1, 1); + gridPane.add(new Label("Relation name:"), 0, 2); + gridPane.add(this.relationNameTF, 1, 2); + gridPane.add(new Label("Relation praefix:"), 0, 3); + gridPane.add(this.relationPraefixTF, 1, 3); + gridPane.add(new Label("Create inserts:"), 0, 4); + gridPane.add(this.createInsertStatementsCB, 1, 4); + gridPane.add(new Label("Number rows:"), 0, 5); + gridPane.add(this.numberRowsToInsertTF, 1, 5); + FlowPane fp = new FlowPane(); + fp.setHgap(10.0D); + + + fp.getChildren().addAll(this.okBTN, this.cancelBTN); + gridPane.add(fp, 0, 6, 2, 1); + + + + + + Scene scene = new Scene(gridPane, 300.0D, 205.0D); + + setScene(scene); + sizeToScene(); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + + this.relationNameTF.requestFocus(); + + + + sizeToScene(); + showAndWait(); + } + + + + + private void setDataAndLeave() { + if (this.nameTF.getText() == null || this.nameTF.getText().length() == 0) + return; this.thisActionMessageDialog.close(); + } + + + + + private void setNothingAndLeave() { + this.nameTF.setText(this.holdName); + this.thisActionMessageDialog.close(); + } + + + public CheckBox getCreateRelationCB() { + return this.createRelationCB; + } + + + + + public TextField getRelationNameTF() { + return this.relationNameTF; + } + + + + + public TextField getRelationPraefixTF() { + return this.relationPraefixTF; + } + + + + + public CheckBox getCreateInsertStatementsCB() { + return this.createInsertStatementsCB; + } + + + + + public TextField getNumberRowsToInsertTF() { + return this.numberRowsToInsertTF; + } + } + + diff --git a/at/fos/ermodel/gui/B1.java b/at/fos/ermodel/gui/B1.java new file mode 100644 index 0000000..83ad1e1 --- /dev/null +++ b/at/fos/ermodel/gui/B1.java @@ -0,0 +1,334 @@ + package at.fos.ermodel.gui; + + import javafx.geometry.Insets; + import javafx.scene.Cursor; + import javafx.scene.Scene; + import javafx.scene.control.Button; + import javafx.scene.control.CheckBox; + import javafx.scene.control.Label; + import javafx.scene.control.TextField; + import javafx.scene.input.KeyCode; + import javafx.scene.layout.*; + import javafx.stage.Modality; + import javafx.stage.Stage; + + import java.util.Objects; + + + public class B1 + extends Stage + { + private final B1 thisActionMessageDialog; + private final TextField nameTF; + private final CheckBox createColumnCB; + private final TextField columnNameTF; + private final TextField relationNameTF; + private final TextField relationNamePraefixTF; + private final TextField columnPostfixTF; + private final TextField datatypeTF; + private final CheckBox isAutoincrementCB; + private final CheckBox isKeyCB; + private final CheckBox isNullableCB; + private final CheckBox isUniqueCB; + private final Button okBTN; + private Button cancelBTN; + private final String holdName; + + public B1(final A3 canvas, double xPos, double yPos, String name, boolean createColumn, String columnName, String relationName, String relationNamePraefix, String columnPostfix, String datatype, boolean isAutoincrement, boolean isKey, boolean isNullable, boolean isUnique) { + String title = "Multivalue Attribute Transformation"; + + + this.holdName = name; + + this.thisActionMessageDialog = this; + setTitle(title); + initModality(Modality.APPLICATION_MODAL); + + + + + + + this.nameTF = new TextField(name); + this.nameTF.setDisable(true); + + + + this.createColumnCB = new CheckBox(); + this.createColumnCB.setSelected(false); + + this.createColumnCB.setDisable(true); + if (createColumn) this.createColumnCB.setSelected(true); + this.createColumnCB.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.createColumnCB, C2.MouseSelectedColor)); + this.createColumnCB.setOnMouseExited(event -> B1.this.createColumnCB.setEffect(null)); + + this.columnPostfixTF = new TextField(columnPostfix); + this.columnPostfixTF.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.columnPostfixTF, C2.MouseSelectedColor)); + this.columnPostfixTF.setOnMouseExited(event -> B1.this.columnPostfixTF.setEffect(null)); + + this.columnNameTF = new TextField(columnName); + this.columnNameTF.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.columnNameTF, C2.MouseSelectedColor)); + this.columnNameTF.setOnMouseExited(event -> B1.this.columnNameTF.setEffect(null)); + + this.relationNameTF = new TextField(relationName); + this.relationNameTF.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.relationNameTF, C2.MouseSelectedColor)); + this.relationNameTF.setOnMouseExited(event -> B1.this.relationNameTF.setEffect(null)); + + this.relationNamePraefixTF = new TextField(relationNamePraefix); + this.relationNamePraefixTF.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.relationNamePraefixTF, C2.MouseSelectedColor)); + this.relationNamePraefixTF.setOnMouseExited(event -> B1.this.relationNamePraefixTF.setEffect(null)); + + this.datatypeTF = new TextField(datatype); + this.datatypeTF.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.datatypeTF, C2.MouseSelectedColor)); + this.datatypeTF.setOnMouseExited(event -> B1.this.datatypeTF.setEffect(null)); + + this.isAutoincrementCB = new CheckBox(); + this.isAutoincrementCB.setSelected(false); + if (isAutoincrement) this.isAutoincrementCB.setSelected(true); + this.isAutoincrementCB.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.isAutoincrementCB, C2.MouseSelectedColor)); + this.isAutoincrementCB.setOnMouseExited(event -> B1.this.isAutoincrementCB.setEffect(null)); + + this.isKeyCB = new CheckBox(); + this.isKeyCB.setSelected(false); + if (isKey) this.isKeyCB.setSelected(true); + this.isKeyCB.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.isKeyCB, C2.MouseSelectedColor)); + this.isKeyCB.setOnMouseExited(event -> B1.this.isKeyCB.setEffect(null)); + + this.isNullableCB = new CheckBox(); + this.isNullableCB.setSelected(false); + if (isNullable) this.isNullableCB.setSelected(true); + this.isNullableCB.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.isNullableCB, C2.MouseSelectedColor)); + this.isNullableCB.setOnMouseExited(event -> B1.this.isNullableCB.setEffect(null)); + + this.isUniqueCB = new CheckBox(); + this.isUniqueCB.setSelected(false); + if (isUnique) this.isUniqueCB.setSelected(true); + this.isUniqueCB.setOnMouseEntered(event -> T3.fdssdf4354(B1.this.isUniqueCB, C2.MouseSelectedColor)); + this.isUniqueCB.setOnMouseExited(event -> B1.this.isUniqueCB.setEffect(null)); + + this.okBTN = new Button("Ok"); + this.okBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + this.okBTN.setOnMouseEntered(event -> { + B1.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(B1.this.okBTN, C2.MouseSelectedColor); + }); + this.okBTN.setOnMouseExited(event -> { + B1.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + B1.this.okBTN.setEffect(null); + if (B1.this.okBTN.isFocused()) T3.fdssdf4354(B1.this.okBTN, C2.FocusOnComponentColor); + }); + this.okBTN.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (this.okBTN.isFocused()) { + T3.fdssdf4354(this.okBTN, C2.FocusOnComponentColor); + + this.columnPostfixTF.setEffect(null); + + this.cancelBTN.setEffect(null); + } else { + this.okBTN.setEffect(null); + } + }); + this.okBTN.setOnAction(event -> { + if (!canvas.getTabWithCanvas().getText().contains("*")) canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + + B1.this.setDataAndLeave(); + }); + this.okBTN.setOnKeyPressed(event -> { + if (Objects.requireNonNull(event.getCode()) == KeyCode.ENTER) { + B1.this.setDataAndLeave(); + + if (!canvas.getTabWithCanvas().getText().contains("*")) + canvas.getTabWithCanvas().setText(canvas.getTabWithCanvas().getText() + "*"); + } + + + + }); + this.cancelBTN = new Button("Cancel"); + this.cancelBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + this.cancelBTN.setOnMouseEntered(event -> { + B1.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(B1.this.cancelBTN, C2.MouseSelectedColor); + }); + this.cancelBTN.setOnMouseExited(event -> { + B1.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + B1.this.cancelBTN.setEffect(null); + if (B1.this.cancelBTN.isFocused()) T3.fdssdf4354(B1.this.cancelBTN, C2.FocusOnComponentColor); + + }); + this.cancelBTN.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (this.cancelBTN.isFocused()) { + T3.fdssdf4354(this.cancelBTN, C2.FocusOnComponentColor); + + this.columnPostfixTF.setEffect(null); + this.okBTN.setEffect(null); + } else { + this.cancelBTN.setEffect(null); + } + }); + this.cancelBTN.setOnAction(event -> B1.this.setNothingAndLeave()); + this.cancelBTN.setOnKeyPressed(event -> { + if (Objects.requireNonNull(event.getCode()) == KeyCode.ENTER) { + B1.this.setNothingAndLeave(); + } + + + }); + if (isKey) { + this.isKeyCB.setDisable(true); + this.isUniqueCB.setDisable(true); + this.createColumnCB.setDisable(true); + this.isNullableCB.setDisable(true); + } else { + + this.isKeyCB.setDisable(true); + } + + + + GridPane gridPane = new GridPane(); + gridPane.setPadding(new Insets(10.0D, 10.0D, 10.0D, 10.0D)); + gridPane.setVgap(4.0D); + gridPane.setHgap(4.0D); + + gridPane.add(new Label("Name:"), 0, 0); + gridPane.add(this.nameTF, 1, 0); + gridPane.add(new Label("Create column:"), 0, 1); + gridPane.add(this.createColumnCB, 1, 1); + gridPane.add(new Label("Column name:"), 0, 2); + gridPane.add(this.columnNameTF, 1, 2); + gridPane.add(new Label("Relation name:"), 0, 3); + gridPane.add(this.relationNameTF, 1, 3); + gridPane.add(new Label("Relation name praefix:"), 0, 4); + gridPane.add(this.relationNamePraefixTF, 1, 4); + gridPane.add(new Label("Column postfix:"), 0, 5); + gridPane.add(this.columnPostfixTF, 1, 5); + gridPane.add(new Label("Column datatype:"), 0, 6); + gridPane.add(this.datatypeTF, 1, 6); + gridPane.add(new Label("Key:"), 0, 7); + gridPane.add(this.isKeyCB, 1, 7); + gridPane.add(new Label("Autoincrement:"), 0, 8); + gridPane.add(this.isAutoincrementCB, 1, 8); + gridPane.add(new Label("Nullable:"), 0, 9); + gridPane.add(this.isNullableCB, 1, 9); + gridPane.add(new Label("Unique:"), 0, 10); + gridPane.add(this.isUniqueCB, 1, 10); + + + + FlowPane fp = new FlowPane(); + fp.setHgap(10.0D); + fp.getChildren().addAll(this.okBTN, this.cancelBTN); + gridPane.add(fp, 0, 11, 2, 1); + + + + + + Scene scene = new Scene(gridPane, 300.0D, 325.0D); + setScene(scene); + + setX(xPos); + setY(yPos); + if (yPos + scene.getHeight() > canvas.getView().getHeight() - 5.0D) { + setY(yPos - scene.getHeight() - 20.0D); + } + if (xPos + scene.getWidth() > canvas.getView().getWidth() - 5.0D) { + setX(xPos - scene.getWidth() - 20.0D); + } + + this.columnNameTF.requestFocus(); + + + + sizeToScene(); + + showAndWait(); + } + + + + + private void setDataAndLeave() { + if (this.nameTF.getText() == null || this.nameTF.getText().length() == 0) + return; this.thisActionMessageDialog.close(); + } + + + + + private void setNothingAndLeave() { + this.nameTF.setText(this.holdName); + this.thisActionMessageDialog.close(); + } + + + public CheckBox getCreateColumnCB() { + return this.createColumnCB; + } + + + + + public TextField getColumnNameTF() { + return this.columnNameTF; + } + + + + + public TextField getColumnPostfixTF() { + return this.columnPostfixTF; + } + + + + + public TextField getDatatypeTF() { + return this.datatypeTF; + } + + + + + public CheckBox getIsAutoincrementCB() { + return this.isAutoincrementCB; + } + + + + + public CheckBox getIsKeyCB() { + return this.isKeyCB; + } + + + + + public CheckBox getIsNullableCB() { + return this.isNullableCB; + } + + + + + public CheckBox getIsUniqueCB() { + return this.isUniqueCB; + } + + + + + public TextField getRelationNameTF() { + return this.relationNameTF; + } + + + + + public TextField getRelationNamePraefixTF() { + return this.relationNamePraefixTF; + } + } + + diff --git a/at/fos/ermodel/gui/B3.java b/at/fos/ermodel/gui/B3.java new file mode 100644 index 0000000..474064a --- /dev/null +++ b/at/fos/ermodel/gui/B3.java @@ -0,0 +1,1502 @@ +package at.fos.ermodel.gui; + +import javafx.application.Platform; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.embed.swing.SwingFXUtils; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.geometry.Side; +import javafx.scene.Cursor; +import javafx.scene.Scene; +import javafx.scene.SnapshotParameters; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.Menu; +import javafx.scene.control.MenuBar; +import javafx.scene.control.MenuItem; +import javafx.scene.control.TextField; +import javafx.scene.control.*; +import javafx.scene.image.ImageView; +import javafx.scene.image.WritableImage; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCombination; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.paint.Paint; +import javafx.scene.text.Font; +import javafx.scene.text.FontWeight; +import javafx.stage.FileChooser; +import javafx.stage.Stage; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.io.*; +import java.net.URISyntaxException; +import java.net.URL; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Objects; + +public class B3 + extends Stage +{ + B3 thisERMViewFX; + BorderPane borderPane; + public final TabPane tabPane; + public final TabPane infoTabPane; + public final CheckBox showAttributeCB; + public final ToggleButton treeOpenBTN; + public final FlowPane fptree; + public final Label creationModelabel; + public final ToggleGroup creation_selection_group; + public final RadioButton selectModeBTN; + public final GridPane buttonPane; + public final RadioButton textElemBTN; + public final RadioButton textWithoutBorderElemBTN; + public final RadioButton esBTN; + public final RadioButton esWeakBTN; + public final RadioButton esAssociativeBTN; + public final RadioButton rsBTN; + public final RadioButton rsIDBTN; + public final RadioButton rsISABTN; + public final RadioButton attrOneBTN; + public final RadioButton attrDerivedOneBTN; + public final RadioButton attrMultiBTN; + public final RadioButton attrDerivedMultiBTN; + public final RadioButton attrKeyBTN; + public final RadioButton attrWeakKeyBTN; + public final RadioButton attrToAttrBTN; + public final RadioButton attrToESBTN; + public final RadioButton attrToRSBTN; + public final RadioButton rsToESBTN; + public final RadioButton rsidToESWeakBTN; + public final RadioButton rsidToESBTN; + public final RadioButton rsisaGeToESBTN; + public final RadioButton rsisaSpToESBTN; + public RadioButton lastCreationSelected; + public final ToggleGroup sqlStyleGroup; + public final RadioButton mySqlStyle; + public final RadioButton msSqlStyle; + public final CheckBox generateRelationalModelCB; + public final Button saveSQLScriptBTN; + public final CheckBox generateInsertsCB; + public final CheckBox singleInsertStatementCB; + public final CheckBox addCurrentDateToDatabaseNameCB; + public BorderPane treeBorderPane; + public TreeItem rootTableNode; + public TreeView treeTableView; + public TreeItem rootColumnNode; + public TreeView treeColumnView; + public VBox verticalBox; + public ListView graphicElemLV; + public final TextField statusInformation; + public final MenuItem menuCutMI; + public final MenuItem menuCopyMI; + public final MenuItem menuPasteMI; + public final MenuItem menuUndoMI; + public final MenuItem menuSelectAllMI; + public final MenuItem menuReadMI; + public final MenuItem menuSaveMI; + public final MenuItem menuSaveAsMI; + public final MenuItem menuExportMI; + public final MenuItem menuExitMI; + public final MenuItem menuNewMI; + public final MenuItem menuRedrawMI; + public final MenuItem menuVersionMI; + public final MenuItem menuDownloadMI; + public final Menu menuVisibility; + public final RadioMenuItem menuVisibilityAllRMI; + public final RadioMenuItem menuVisibilityES_RSRMI; + public final RadioMenuItem menuVisibilityES_RS_KEYRMI; + public final RadioMenuItem menuVisibilityTEXTRMI; + public final MenuItem mergeModelsMI; + public final A2 controller; + public final C2 properties; + private U1 currentTab; + private ArrayList toCopyElements; + private V1 progress; + + public B3() { + this.thisERMViewFX = this; + + + this.properties = new C2(); + + this.treeBorderPane = new BorderPane(); + + treeBorderPane.setBackground(C2.AppBackground); + + + + this.verticalBox = new VBox(); + + verticalBox.setBackground(C2.AppBackground); + + + + + this.controller = new A2(this); + + + + this.tabPane = new TabPane(); + + tabPane.setBackground(C2.AppBackground); + + this.tabPane.setSide(Side.TOP); + this.tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.SELECTED_TAB); + + + this.infoTabPane = new TabPane(); + + infoTabPane.setBackground(C2.AppBackground); + + this.infoTabPane.setSide(Side.TOP); + this.infoTabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE); + + + this.showAttributeCB = new CheckBox("Check data generation"); + this.showAttributeCB.setTooltip(new Tooltip("Check data generation")); + this.showAttributeCB.setPrefWidth(40.0D); + this.showAttributeCB.setMinWidth(40.0D); + this.showAttributeCB.setOnAction(new EventHandler<>() { + public void handle(ActionEvent event) { + if (B3.this.showAttributeCB.isSelected()) { + if (!B3.this.selectModeBTN.isSelected()) { + B3.this.showAttributeCB.setSelected(false); + return; + } + B3.this.currentTab.canvas.sortGraphicElementsByName(); + B3.this.graphicElemLV.getItems().clear(); + B3.this.graphicElemLV.getItems().addAll(B3.this.currentTab.canvas.getAttributeElements()); + } else { + B3.this.graphicElemLV.getItems().clear(); + B3.this.graphicElemLV.getItems().addAll(B3.this.currentTab.canvas.sddsfsfsdf45645645()); + } + } + }); + + + + this.infoTabPane.setOnMouseClicked(arg0 -> B3.this.showAttributeCB.setDisable(B3.this.infoTabPane.getSelectionModel().getSelectedIndex() != 0)); + + + this.tabPane.getSelectionModel().selectedItemProperty().addListener( + new ChangeListener<>() { + + public void changed(ObservableValue ov, Tab t, Tab t1) { + B3.this.currentTab = (U1) B3.this.tabPane.getSelectionModel().getSelectedItem(); + + if (B3.this.currentTab != null && B3.this.currentTab.canvas != null) { + B3.this.graphicElemLV.getItems().clear(); + + if (B3.this.showAttributeCB.isSelected()) { + B3.this.graphicElemLV.getItems().addAll(B3.this.currentTab.canvas.getAttributeElements()); + } else { + B3.this.graphicElemLV.getItems().addAll(B3.this.currentTab.canvas.sddsfsfsdf45645645()); + } + if (B3.this.generateRelationalModelCB.isSelected()) { + B3.this.currentTab.canvas.dsfdsdfssdf45645re(); + } + B3.this.currentTab.canvas.modelVisibility(); + B3.this.currentTab.canvas.sdfsdfds3465er(true); + } else { + + B3.this.verticalBox.getChildren().clear(); + B3.this.graphicElemLV.getItems().clear(); + } + } + }); + + + + VBox vBox = new VBox(); + + this.creation_selection_group = new ToggleGroup(); + + + this.buttonPane = new GridPane(); + this.buttonPane.setPadding(new Insets(5.0D, 5.0D, 5.0D, 5.0D)); + this.buttonPane.setVgap(5.0D); + this.buttonPane.setHgap(5.0D); + buttonPane.setBackground(new Background(new BackgroundFill(C2.ERMForegroundColor, CornerRadii.EMPTY, Insets.EMPTY))); + + + ImageView imageView = new ImageView(C2.treeOpenImage); + imageView.setFitHeight(10.0D); + imageView.setFitWidth(8.0D); + this.treeOpenBTN = new ToggleButton(); + this.treeOpenBTN.setTooltip(new Tooltip("Click to expand info area")); + this.treeOpenBTN.setOnMouseEntered(event -> { + B3.this.getScene().getRoot().setCursor(Cursor.HAND); + T3.asdasda345435ertretr(B3.this.treeOpenBTN.getGraphic(), 1.3D, 1.3D, 0.3D, 0.2D, 0.4D, -0.2D); + }); + this.treeOpenBTN.setOnMouseExited(event -> { + B3.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + T3.buttonMouseExited(B3.this.treeOpenBTN.getGraphic()); + }); + this.treeOpenBTN.setOnAction(new EventHandler<>() { + public void handle(ActionEvent event) { + if (B3.this.treeOpenBTN.isSelected()) { + ImageView imageView = new ImageView(C2.treeCloseImage); + imageView.setFitHeight(10.0D); + imageView.setFitWidth(8.0D); + B3.this.treeOpenBTN.setGraphic(imageView); + B3.this.treeBorderPane.setPrefWidth(200.0D); + B3.this.showAttributeCB.setVisible(true); + B3.this.fptree.setPrefWidth(50.0D); + B3.this.showAttributeCB.setMinWidth(150.0D); + B3.this.showAttributeCB.setMaxWidth(150.0D); + B3.this.showAttributeCB.setPrefWidth(150.0D); + B3.this.treeOpenBTN.setTooltip(new Tooltip("Click to close")); + } else { + + ImageView imageView = new ImageView(C2.treeOpenImage); + imageView.setFitHeight(10.0D); + imageView.setFitWidth(8.0D); + B3.this.treeOpenBTN.setGraphic(imageView); + B3.this.treeBorderPane.setPrefWidth(8.0D); + B3.this.showAttributeCB.setVisible(false); + B3.this.showAttributeCB.setPrefWidth(0.0D); + B3.this.treeOpenBTN.setTooltip(new Tooltip("Click to expand")); + } + } + }); + + + + this.treeOpenBTN.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, CornerRadii.EMPTY, Insets.EMPTY))); + + + this.treeOpenBTN.setGraphic(imageView); + this.treeBorderPane.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, CornerRadii.EMPTY, Insets.EMPTY))); + this.treeBorderPane.setPrefWidth(10.0D); + + + this.fptree = new FlowPane(); + this.fptree.getChildren().add(this.treeOpenBTN); + this.fptree.getChildren().add(this.showAttributeCB); + this.showAttributeCB.setPrefWidth(0.0D); + this.showAttributeCB.setVisible(false); + this.treeBorderPane.setTop(this.fptree); + + + + this.graphicElemLV = new ListView<>(); + graphicElemLV.setBackground(C2.AppBackground); + this.graphicElemLV.setPrefHeight(300.0D); + this.graphicElemLV.setTooltip(new Tooltip("To delete an element press DEL-Key")); + this.graphicElemLV.setCellFactory(p -> new ListCell<>() { + protected void updateItem(Graphic_Main_Elem item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + if (B3.this.showAttributeCB.isSelected()) { + + setStyle("-fx-text-fill: red;"); + String doneString = ""; + if (item instanceof Graphic_RS_ISA_Elem || + item instanceof Graphic_ES_Weak_Elem) { + doneString = "... ok"; + setStyle("-fx-text-fill: green;"); + } else { + + if (item instanceof Graphic_ATTR_Elem) { + if (((Graphic_ATTR_Elem) item).dataGenerationType == null) + ((Graphic_ATTR_Elem) item).dataGenerationType = "No"; + if (!((Graphic_ATTR_Elem) item).dataGenerationType.equals("No")) { + doneString = "... ok"; + setStyle("-fx-text-fill: green;"); + } + if (!((Graphic_ATTR_Elem) item).createColumn || ((Graphic_ATTR_Elem) item).isAutoincrement) { + doneString = "... ok"; + setStyle("-fx-text-fill: green;"); + } + + if (((Graphic_ATTR_Elem) item).isNullable) { + doneString = "... ok"; + setStyle("-fx-text-fill: green;"); + } + } + + if (item instanceof Graphic_ES_Main_Elem && + ((Graphic_ES_Main_Elem) item).createInserts && ((Graphic_ES_Main_Elem) item).numberRowsToInsert > 0L) { + doneString = "... ok"; + setStyle("-fx-text-fill: green;"); + } + + if (item instanceof Graphic_RS_Main_Elem && + ((Graphic_RS_Main_Elem) item).createInserts && ((Graphic_RS_Main_Elem) item).numberRowsToInsert > 0L) { + doneString = "... ok"; + setStyle("-fx-text-fill: green;"); + } + } + + setText(item.sdfsdfsd32234243() + " " + doneString); + return; + } + setText("[" + item.sdfsdfsdfd() + "]" + item.sdfsdfsd32234243()); + + + if (!isSelected()) { + + setStyle(null); + } + } else { + setText(null); + setStyle(null); + } + } + }); + + this.graphicElemLV.setOnMouseClicked(event -> { + Graphic_Main_Elem selectedItem = B3.this.graphicElemLV.getSelectionModel().getSelectedItem(); + if (selectedItem != null) { + B3.this.currentTab.canvas.sdfsdfds3465er(true); + B3.this.currentTab.canvas.dsfdsfsdf43543refds(selectedItem.graphicMainElemID); + } + }); + + + this.graphicElemLV.setOnKeyPressed(new EventHandler<>() { + public void handle(KeyEvent event) { + Graphic_Main_Elem selectedItem; + if (Objects.requireNonNull(event.getCode()) == KeyCode.DELETE) { + if (!B3.this.selectModeBTN.isSelected()) { + return; + } + + + selectedItem = B3.this.graphicElemLV.getSelectionModel().getSelectedItem(); + if (selectedItem != null) { + B3.this.graphicElemLV.getItems().remove(selectedItem); + selectedItem.dsfsdfsfd(); + + if (selectedItem instanceof Graphic_Figure_Elem) { + ArrayList linesAsEnd = B3.this.currentTab.canvas.sdfsdfds23432rwefsd(selectedItem); + ArrayList linesAsStart = B3.this.currentTab.canvas.dsfdsfdsjhkj456456(selectedItem); + + for (Graphic_LINE_Elem gle : linesAsEnd) { + gle.dsfsdfsfd(); + B3.this.currentTab.canvas.fsdfdsfds1231278().remove(gle); + } + for (Graphic_LINE_Elem gle : linesAsStart) { + gle.dsfsdfsfd(); + B3.this.currentTab.canvas.fsdfdsfds1231278().remove(gle); + } + } + + B3.this.currentTab.canvas.fsdfdsfds1231278().remove(selectedItem); + } + } + + + } + }); + this.graphicElemLV.setOnKeyReleased(event -> { + Graphic_Main_Elem selectedItem = B3.this.graphicElemLV.getSelectionModel().getSelectedItem(); + if (selectedItem != null) { + B3.this.currentTab.canvas.sdfsdfds3465er(true); + B3.this.currentTab.canvas.dsfdsfsdf43543refds(selectedItem.graphicMainElemID); + } + }); + + + + + this.infoTabPane.getTabs().add(new Tab("Elem", this.graphicElemLV)); + this.infoTabPane.getTabs().add(new Tab("R-Model", this.verticalBox)); + + + + this.treeBorderPane.setCenter(this.infoTabPane); + + + + this.selectModeBTN = new RadioButton("Selection Mode"); + this.selectModeBTN.setFont(Font.font(null, FontWeight.BOLD, 11.0D)); + this.selectModeBTN.setStyle("-fx-text-fill:white"); + this.selectModeBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.selectModeBTN.setSelected(true); + this.selectModeBTN.setToggleGroup(this.creation_selection_group); + this.selectModeBTN.setTooltip(new Tooltip("Selection Mode - F1-Key Selection mode <-> Creation Mode")); + setMouseHandler(this.selectModeBTN); + + + imageView = new ImageView(C2.textImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.textElemBTN = new RadioButton(); + this.textElemBTN.setPrefWidth(30.0D); + this.textElemBTN.setGraphic(imageView); + + this.textElemBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.textElemBTN.setSelected(false); + this.textElemBTN.setToggleGroup(this.creation_selection_group); + this.textElemBTN.setTooltip(new Tooltip("Text with border")); + setMouseHandler(this.textElemBTN); + + + imageView = new ImageView(C2.textWithoutBorderImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.textWithoutBorderElemBTN = new RadioButton(); + this.textWithoutBorderElemBTN.setPrefWidth(30.0D); + this.textWithoutBorderElemBTN.setGraphic(imageView); + + this.textWithoutBorderElemBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.textWithoutBorderElemBTN.setSelected(false); + this.textWithoutBorderElemBTN.setToggleGroup(this.creation_selection_group); + this.textWithoutBorderElemBTN.setTooltip(new Tooltip("Text without border")); + setMouseHandler(this.textWithoutBorderElemBTN); + + + + imageView = new ImageView(C2.esImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.esBTN = new RadioButton(); + this.esBTN.setPrefWidth(30.0D); + this.esBTN.setGraphic(imageView); + setMouseHandler(this.esBTN); + + this.esBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.esBTN.setSelected(true); + this.lastCreationSelected = this.esBTN; + this.esBTN.setToggleGroup(this.creation_selection_group); + this.esBTN.setTooltip(new Tooltip("Entity set")); + + + + imageView = new ImageView(C2.es_weakImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.esWeakBTN = new RadioButton(); + this.esWeakBTN.setPrefWidth(30.0D); + this.esWeakBTN.setGraphic(imageView); + setMouseHandler(this.esWeakBTN); + + this.esWeakBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.esWeakBTN.setToggleGroup(this.creation_selection_group); + this.esWeakBTN.setTooltip(new Tooltip("Weak entity set")); + + + imageView = new ImageView(C2.es_associativeImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.esAssociativeBTN = new RadioButton(); + this.esAssociativeBTN.setPrefWidth(30.0D); + this.esAssociativeBTN.setGraphic(imageView); + setMouseHandler(this.esAssociativeBTN); + + this.esAssociativeBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.esAssociativeBTN.setToggleGroup(this.creation_selection_group); + this.esAssociativeBTN.setTooltip(new Tooltip("Associative entity set")); + + + imageView = new ImageView(C2.rsImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsBTN = new RadioButton(); + this.rsBTN.setPrefWidth(30.0D); + this.rsBTN.setGraphic(imageView); + setMouseHandler(this.rsBTN); + + this.rsBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsBTN.setToggleGroup(this.creation_selection_group); + this.rsBTN.setTooltip(new Tooltip("Relationship")); + + + + imageView = new ImageView(C2.rs_idImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsIDBTN = new RadioButton(); + this.rsIDBTN.setPrefWidth(30.0D); + this.rsIDBTN.setGraphic(imageView); + setMouseHandler(this.rsIDBTN); + + this.rsIDBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsIDBTN.setToggleGroup(this.creation_selection_group); + this.rsIDBTN.setTooltip(new Tooltip("Identifying-relationship: used together with a weak-entity-set")); + + + imageView = new ImageView(C2.rs_isaImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsISABTN = new RadioButton(); + this.rsISABTN.setPrefWidth(30.0D); + this.rsISABTN.setGraphic(imageView); + setMouseHandler(this.rsISABTN); + + this.rsISABTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsISABTN.setToggleGroup(this.creation_selection_group); + this.rsISABTN.setTooltip(new Tooltip("ISA relationship - generalization/specialization")); + + + imageView = new ImageView(C2.attr_one_valueImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrOneBTN = new RadioButton(); + this.attrOneBTN.setPrefWidth(30.0D); + this.attrOneBTN.setGraphic(imageView); + setMouseHandler(this.attrOneBTN); + + this.attrOneBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrOneBTN.setToggleGroup(this.creation_selection_group); + this.attrOneBTN.setTooltip(new Tooltip("One value attribute")); + + + imageView = new ImageView(C2.attr_multi_valueImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrMultiBTN = new RadioButton(); + this.attrMultiBTN.setPrefWidth(30.0D); + this.attrMultiBTN.setGraphic(imageView); + setMouseHandler(this.attrMultiBTN); + + this.attrMultiBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrMultiBTN.setToggleGroup(this.creation_selection_group); + this.attrMultiBTN.setTooltip(new Tooltip("Multivalue attribute")); + + + imageView = new ImageView(C2.attr_key_valueImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrKeyBTN = new RadioButton(); + this.attrKeyBTN.setPrefWidth(30.0D); + this.attrKeyBTN.setGraphic(imageView); + setMouseHandler(this.attrKeyBTN); + + this.attrKeyBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrKeyBTN.setToggleGroup(this.creation_selection_group); + this.attrKeyBTN.setTooltip(new Tooltip("Primary key attribute")); + + + imageView = new ImageView(C2.attr_weak_key_valueImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrWeakKeyBTN = new RadioButton(); + this.attrWeakKeyBTN.setPrefWidth(30.0D); + this.attrWeakKeyBTN.setGraphic(imageView); + setMouseHandler(this.attrWeakKeyBTN); + + this.attrWeakKeyBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrWeakKeyBTN.setToggleGroup(this.creation_selection_group); + this.attrWeakKeyBTN.setTooltip(new Tooltip("Weak key attribute")); + + + imageView = new ImageView(C2.attr_derived_one_valueImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrDerivedOneBTN = new RadioButton(); + this.attrDerivedOneBTN.setPrefWidth(30.0D); + this.attrDerivedOneBTN.setGraphic(imageView); + setMouseHandler(this.attrDerivedOneBTN); + + this.attrDerivedOneBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrDerivedOneBTN.setToggleGroup(this.creation_selection_group); + this.attrDerivedOneBTN.setTooltip(new Tooltip("Derived one-value-attribute")); + + + imageView = new ImageView(C2.attr_derived_multi_valueImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrDerivedMultiBTN = new RadioButton(); + this.attrDerivedMultiBTN.setPrefWidth(30.0D); + this.attrDerivedMultiBTN.setGraphic(imageView); + setMouseHandler(this.attrDerivedMultiBTN); + + this.attrDerivedMultiBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrDerivedMultiBTN.setToggleGroup(this.creation_selection_group); + this.attrDerivedMultiBTN.setTooltip(new Tooltip("Derived multi-value-attribute")); + + + + imageView = new ImageView(C2.attr_conn_attrImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrToAttrBTN = new RadioButton(); + this.attrToAttrBTN.setPrefWidth(30.0D); + this.attrToAttrBTN.setGraphic(imageView); + setMouseHandler(this.attrToAttrBTN); + + this.attrToAttrBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrToAttrBTN.setToggleGroup(this.creation_selection_group); + this.attrToAttrBTN.setTooltip(new Tooltip("Connect attribute with attribute (to create composite-attribute)")); + + + imageView = new ImageView(C2.attr_conn_esImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrToESBTN = new RadioButton(); + this.attrToESBTN.setPrefWidth(30.0D); + this.attrToESBTN.setGraphic(imageView); + setMouseHandler(this.attrToESBTN); + + this.attrToESBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrToESBTN.setToggleGroup(this.creation_selection_group); + this.attrToESBTN.setTooltip(new Tooltip("Connect attribute with entity-set")); + + + imageView = new ImageView(C2.attr_conn_rsImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.attrToRSBTN = new RadioButton(); + this.attrToRSBTN.setPrefWidth(30.0D); + this.attrToRSBTN.setGraphic(imageView); + setMouseHandler(this.attrToRSBTN); + + this.attrToRSBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.attrToRSBTN.setToggleGroup(this.creation_selection_group); + this.attrToRSBTN.setTooltip(new Tooltip("Connect attribute with relationship")); + + + imageView = new ImageView(C2.rs_conn_esImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsToESBTN = new RadioButton(); + this.rsToESBTN.setPrefWidth(30.0D); + this.rsToESBTN.setGraphic(imageView); + setMouseHandler(this.rsToESBTN); + + this.rsToESBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsToESBTN.setToggleGroup(this.creation_selection_group); + this.rsToESBTN.setTooltip(new Tooltip("Connect entity-set with relationship")); + + + imageView = new ImageView(C2.rs_id_conn_es_weakImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsidToESWeakBTN = new RadioButton(); + this.rsidToESWeakBTN.setPrefWidth(30.0D); + this.rsidToESWeakBTN.setGraphic(imageView); + setMouseHandler(this.rsidToESWeakBTN); + + this.rsidToESWeakBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsidToESWeakBTN.setToggleGroup(this.creation_selection_group); + this.rsidToESWeakBTN.setTooltip(new Tooltip("Connect weak-entity-set with identifying-relationship")); + + + imageView = new ImageView(C2.rs_id_conn_esImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsidToESBTN = new RadioButton(); + this.rsidToESBTN.setPrefWidth(30.0D); + this.rsidToESBTN.setGraphic(imageView); + setMouseHandler(this.rsidToESBTN); + + this.rsidToESBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsidToESBTN.setToggleGroup(this.creation_selection_group); + this.rsidToESBTN.setTooltip(new Tooltip("Connect entity-set with identifying-relationship")); + + + imageView = new ImageView(C2.rs_isa_conn_general_esImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsisaGeToESBTN = new RadioButton(); + this.rsisaGeToESBTN.setPrefWidth(30.0D); + this.rsisaGeToESBTN.setGraphic(imageView); + setMouseHandler(this.rsisaGeToESBTN); + + this.rsisaGeToESBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsisaGeToESBTN.setToggleGroup(this.creation_selection_group); + this.rsisaGeToESBTN.setTooltip(new Tooltip("Connect isa-relationship with entity-set (generalization)")); + + + imageView = new ImageView(C2.rs_isa_conn_special_esImage); + imageView.setFitHeight(C2.imageHeight); + imageView.setFitWidth(C2.imageWidth); + this.rsisaSpToESBTN = new RadioButton(); + this.rsisaSpToESBTN.setPrefWidth(30.0D); + this.rsisaSpToESBTN.setGraphic(imageView); + setMouseHandler(this.rsisaSpToESBTN); + + this.rsisaSpToESBTN.addEventHandler(ActionEvent.ACTION, this.controller); + this.rsisaSpToESBTN.setToggleGroup(this.creation_selection_group); + this.rsisaSpToESBTN.setTooltip(new Tooltip("Connect isa-relationship with entity-set (specialization)")); + + + this.generateRelationalModelCB = new CheckBox("Generate Relational Model"); + this.generateRelationalModelCB.setTooltip(new Tooltip("To check the relational model open the area right to the working area")); + this.generateRelationalModelCB.setSelected(false); + setMouseHandler(this.generateRelationalModelCB); + this.generateRelationalModelCB.setOnAction(arg0 -> { + if (B3.this.generateRelationalModelCB.isSelected()) { + if (!B3.this.selectModeBTN.isSelected()) { + B3.this.generateRelationalModelCB.setSelected(false); + return; + } + if (B3.this.currentTab != null && B3.this.currentTab.canvas != null) B3.this.currentTab.canvas.dsfdsdfssdf45645re(); + + } else { + + B3.this.verticalBox.getChildren().clear(); + } + }); + + + this.saveSQLScriptBTN = new Button("Generate/Save DDL script"); + this.saveSQLScriptBTN.setTooltip(new Tooltip("The ddl-script will be generated and saved into a file")); + this.saveSQLScriptBTN.setMaxWidth(Double.MAX_VALUE); + setMouseHandler(this.saveSQLScriptBTN); + GridPane.setFillWidth(this.saveSQLScriptBTN, Boolean.TRUE); + this.saveSQLScriptBTN.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, CornerRadii.EMPTY, Insets.EMPTY))); + + this.saveSQLScriptBTN.setOnAction(arg0 -> { + if (B3.this.generateRelationalModelCB.isSelected()) { + try { + B3.this.saveSQLScript(); + } catch (ZZ20 ignored) { + } + } + }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this.generateInsertsCB = new CheckBox("Generate insert statement"); + this.generateInsertsCB.setTooltip(new Tooltip("If selected, insert statements are generated in the ddl-script")); + setMouseHandler(this.generateInsertsCB); + this.generateInsertsCB.setFont(Font.font(null, FontWeight.NORMAL, 11.0D)); + this.generateInsertsCB.setSelected(false); + this.singleInsertStatementCB = new CheckBox("-> as single insert statement"); + this.singleInsertStatementCB.setTooltip(new Tooltip("If selected, all inserts are seperated statements")); + setMouseHandler(this.singleInsertStatementCB); + this.singleInsertStatementCB.setFont(Font.font(null, FontWeight.NORMAL, 11.0D)); + this.singleInsertStatementCB.setSelected(false); + + this.addCurrentDateToDatabaseNameCB = new CheckBox("Add current date to db-name"); + this.addCurrentDateToDatabaseNameCB.setTooltip(new Tooltip("If selected, the current date will be added to the db-name")); + setMouseHandler(this.addCurrentDateToDatabaseNameCB); + this.addCurrentDateToDatabaseNameCB.setFont(Font.font(null, FontWeight.NORMAL, 11.0D)); + this.addCurrentDateToDatabaseNameCB.setSelected(false); + + + + this.sqlStyleGroup = new ToggleGroup(); + this.mySqlStyle = new RadioButton("MySQL"); + this.mySqlStyle.setTooltip(new Tooltip("Creates a MySQL style script")); + this.mySqlStyle.setToggleGroup(this.sqlStyleGroup); + this.mySqlStyle.setSelected(true); + setMouseHandler(this.mySqlStyle); + this.msSqlStyle = new RadioButton("MSSQL"); + this.msSqlStyle.setTooltip(new Tooltip("Creates a Microsoft-SQL-Server style script")); + this.msSqlStyle.setToggleGroup(this.sqlStyleGroup); + setMouseHandler(this.msSqlStyle); + FlowPane sqlStylePane = new FlowPane(); + sqlStylePane.setPrefWidth(40.0D); + sqlStylePane.getChildren().add(this.mySqlStyle); + sqlStylePane.getChildren().add(this.msSqlStyle); + + + int ci = 0, ri = 0; + + + + this.buttonPane.add(this.selectModeBTN, ci, ri++, 2, 1); + + + Label crLBL = new Label("Creation Mode"); + crLBL.setFont(Font.font(null, FontWeight.BOLD, 11.0D)); + + HBox labeledSeparator = new HBox(); + this.creationModelabel = new Label(" Creation mode "); + this.creationModelabel.setStyle("-fx-text-fill:red"); + this.creationModelabel.setFont(Font.font(null, FontWeight.BOLD, 11.0D)); + Separator leftSeparator = new Separator(); + leftSeparator.setPrefWidth(42.0D); + Separator rightSeparator = new Separator(); + rightSeparator.setPrefWidth(42.0D); + labeledSeparator.getChildren().add(leftSeparator); + labeledSeparator.getChildren().add(this.creationModelabel); + labeledSeparator.getChildren().add(rightSeparator); + labeledSeparator.setAlignment(Pos.CENTER); + + FlowPane fp = new FlowPane(crLBL); + fp.setPrefWidth(40.0D); + fp.setAlignment(Pos.CENTER); + this.buttonPane.add(labeledSeparator, 0, ri++, 2, 1); + + + + + + + + + + + + + + + + + + + + VBox vbox0 = new VBox(10.0D); + HBox hbox0 = new HBox(10.0D); + hbox0.getChildren().addAll(this.textElemBTN, this.textWithoutBorderElemBTN); + vbox0.getChildren().addAll(hbox0); + TitledPane textElement = new TitledPane("Text element", vbox0); + Accordion accorTextelement = new Accordion(); + accorTextelement.getPanes().add(textElement); + this.buttonPane.add(accorTextelement, 0, ri++, 2, 1); + + vbox0 = new VBox(10.0D); + hbox0 = new HBox(10.0D); + hbox0.getChildren().addAll(this.esBTN, this.esWeakBTN); + HBox hbox1 = new HBox(10.0D); + hbox1.getChildren().addAll(this.esAssociativeBTN); + vbox0.getChildren().addAll(hbox0, hbox1); + TitledPane entitysetType = new TitledPane("Entity-set type", vbox0); + this.buttonPane.add(entitysetType, 0, ri++, 2, 1); + entitysetType.setBackground(C2.AppForeground); + + vbox0 = new VBox(10.0D); + hbox0 = new HBox(10.0D); + hbox0.getChildren().addAll(this.rsBTN, this.rsIDBTN); + hbox1 = new HBox(10.0D); + hbox1.getChildren().addAll(this.rsISABTN); + vbox0.getChildren().addAll(hbox0, hbox1); + TitledPane relationshipType = new TitledPane("Relationship type", vbox0); + this.buttonPane.add(relationshipType, 0, ri++, 2, 1); + relationshipType.setBackground(C2.AppForeground); + + vbox0 = new VBox(10.0D); + hbox0 = new HBox(10.0D); + hbox0.getChildren().addAll(this.rsToESBTN); + hbox1 = new HBox(10.0D); + hbox1.getChildren().addAll(this.rsidToESBTN, this.rsidToESWeakBTN); + HBox hbox2 = new HBox(10.0D); + hbox2.getChildren().addAll(this.rsisaGeToESBTN, this.rsisaSpToESBTN); + vbox0.getChildren().addAll(hbox0, hbox1, hbox2); + TitledPane connectESRS = new TitledPane("Connect ES-RS", vbox0); + + this.buttonPane.add(connectESRS, 0, ri++, 2, 1); + connectESRS.setBackground(C2.AppForeground); + + vbox0 = new VBox(10.0D); + hbox0 = new HBox(10.0D); + hbox0.getChildren().addAll(this.attrKeyBTN, this.attrWeakKeyBTN); + hbox1 = new HBox(10.0D); + hbox1.getChildren().addAll(this.attrOneBTN, this.attrMultiBTN); + hbox2 = new HBox(10.0D); + hbox2.getChildren().addAll(this.attrDerivedOneBTN, this.attrDerivedMultiBTN); + vbox0.getChildren().addAll(hbox0, hbox1, hbox2); + TitledPane attributeTypes = new TitledPane("Attribute type", vbox0); + attributeTypes.setExpanded(false); + this.buttonPane.add(attributeTypes, 0, ri++, 2, 1); + attributeTypes.setBackground(C2.AppForeground); + + vbox0 = new VBox(10.0D); + hbox0 = new HBox(10.0D); + hbox0.getChildren().addAll(this.attrToESBTN, this.attrToRSBTN); + hbox1 = new HBox(10.0D); + hbox1.getChildren().addAll(this.attrToAttrBTN); + vbox0.getChildren().addAll(hbox0, hbox1); + TitledPane connectAttribute = new TitledPane("Connect Attribute", vbox0); + connectAttribute.setExpanded(false); + this.buttonPane.add(connectAttribute, 0, ri++, 2, 1); + connectAttribute.setBackground(C2.AppForeground); + this.buttonPane.add(this.generateRelationalModelCB, 0, ri++, 2, 1); + + + + + VBox box = new VBox(10.0D); + box.getChildren().addAll(this.addCurrentDateToDatabaseNameCB, this.generateInsertsCB, this.singleInsertStatementCB, this.saveSQLScriptBTN); + TitledPane createddl = new TitledPane("Create DDL", box); + createddl.setExpanded(false); + this.buttonPane.add(createddl, 0, ri++, 2, 1); + + this.statusInformation = new TextField("Creation Mode: entity-set -> press left mouse button on working area -> enter name of entity-set -> press enter key"); + this.statusInformation.setEditable(false); + this.statusInformation.setFocusTraversable(false); + + this.currentTab = addNewTab(null); + + this.borderPane = new BorderPane(); + this.borderPane.setLeft(this.buttonPane); + this.borderPane.setCenter(this.tabPane); + this.borderPane.setRight(this.treeBorderPane); + this.borderPane.setBottom(this.statusInformation); + + this.borderPane.setOnKeyPressed(arg0 -> { + if (B3.this.currentTab != null && B3.this.currentTab.canvas != null) { + B3.this.currentTab.canvas.sdfdsfd567657rrt(arg0); + } + }); + + setTitle("ER-Modeling-Chen++ -> Relational Model -> Database Creation + Data Generation ~ [jre-" + + System.getProperty("java.version") + " - " + System.getProperty("java.class.path") + "]"); + + setResizable(true); + centerOnScreen(); + + + MenuBar menuBar = new MenuBar(); + + + Menu menuFile = new Menu("_File"); + + menuFile.setMnemonicParsing(true); + + + this.menuNewMI = new MenuItem("_New model"); + this.menuNewMI.setMnemonicParsing(true); + + this.menuNewMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuNewMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+N")); + + this.menuRedrawMI = new MenuItem("_Redraw model"); + this.menuRedrawMI.setMnemonicParsing(true); + + this.menuRedrawMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuRedrawMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+R")); + + this.menuReadMI = new MenuItem("_Open model"); + + this.menuReadMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuReadMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+O")); + + this.menuSaveMI = new MenuItem("_Save model"); + this.menuSaveMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuSaveMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+S")); + + + this.menuSaveAsMI = new MenuItem("Save model as"); + + this.menuSaveAsMI.addEventHandler(ActionEvent.ACTION, this.controller); + + this.menuExportMI = new MenuItem("_Export model (png)"); + this.menuExportMI.setMnemonicParsing(true); + + this.menuExportMI.addEventHandler(ActionEvent.ACTION, this.controller); + + this.menuExitMI = new MenuItem("_Exit"); + + this.menuExitMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuExitMI.setMnemonicParsing(true); + this.menuExitMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+E")); + + menuFile.getItems().addAll(this.menuNewMI, new SeparatorMenuItem(), + this.menuRedrawMI, new SeparatorMenuItem(), + this.menuReadMI, this.menuSaveMI, this.menuSaveAsMI, this.menuExportMI, new SeparatorMenuItem(), + this.menuExitMI); + + Menu menuEdit = new Menu("_Edit"); + + this.menuCutMI = new MenuItem("Cut"); + this.menuCutMI.setMnemonicParsing(true); + this.menuCutMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+X")); + + this.menuCopyMI = new MenuItem("_Copy"); + this.menuCopyMI.setMnemonicParsing(true); + this.menuCopyMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+C")); + + this.menuCopyMI.addEventHandler(ActionEvent.ACTION, this.controller); + + this.menuPasteMI = new MenuItem("Paste"); + this.menuPasteMI.setMnemonicParsing(true); + this.menuPasteMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+V")); + + this.menuPasteMI.addEventHandler(ActionEvent.ACTION, this.controller); + + this.menuSelectAllMI = new MenuItem("Select all"); + this.menuSelectAllMI.setMnemonicParsing(true); + this.menuSelectAllMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+A")); + + this.menuSelectAllMI.addEventHandler(ActionEvent.ACTION, this.controller); + + this.menuUndoMI = new MenuItem("Undo"); + this.menuUndoMI.setMnemonicParsing(true); + this.menuUndoMI.setAccelerator( + KeyCombination.keyCombination("SHORTCUT+Z")); + + this.menuUndoMI.addEventHandler(ActionEvent.ACTION, this.controller); + + menuEdit.getItems().addAll(this.menuUndoMI, new SeparatorMenuItem(), this.menuCutMI, this.menuCopyMI, this.menuPasteMI, new SeparatorMenuItem(), this.menuSelectAllMI); + + Menu menuModel = new Menu("_Model"); + this.mergeModelsMI = new MenuItem("Merge models"); + this.mergeModelsMI.setOnAction(arg0 -> { + if (B3.this.generateRelationalModelCB.isSelected()) { + return; + } + + + + + + + + + + + + + + + + for (Tab tab : B3.this.tabPane.getTabs()) { + U1 runningTab = (U1)tab; + if (runningTab.getText().contains("*")) { + return; + } + } + + + + + + + + + + + + + + + ZZ30 mergedModel = new ZZ30(B3.this.thisERMViewFX); + try { + boolean merged = mergedModel.mergeAllModelsInPanes(); + if (!merged) + { + return; + + + + + + } + + + + + + } + catch (ClassNotFoundException|IOException e) { + return; + } + + + + + + + + + + + + + + + + + B3.this.currentTab = B3.this.addNewTab(null); + + for (Graphic_Main_Elem gme : mergedModel.getGraphicElements()) { + gme.setGc(B3.this.currentTab.canvas.getGraphicsContext2D()); + + gme.isVisible = true; + } + + B3.this.currentTab.canvas.dsfds124332(B3.this.currentTab.canvas.sdfsddf345ersdf()); + + B3.this.currentTab.canvas.clearERMDrawCanvas(); + B3.this.currentTab.canvas.safdsadsa65765ewthjk(mergedModel.getGraphicElements()); + B3.this.currentTab.canvas.sdfsdfds3465er(true); + + B3.this.tabPane.getSelectionModel().select(B3.this.currentTab); + + + B3.this.currentTab.canvas.dsfdsdfssdf45645re(); + }); + + + + + + this.menuVisibility = new Menu("_Visibility"); + this.menuVisibility.setDisable(true); + this.menuVisibilityAllRMI = new RadioMenuItem("All"); + this.menuVisibilityAllRMI.setSelected(true); + this.menuVisibilityAllRMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuVisibilityES_RSRMI = new RadioMenuItem("ES + RS"); + this.menuVisibilityES_RSRMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuVisibilityES_RS_KEYRMI = new RadioMenuItem("ES + RS + KEYS"); + this.menuVisibilityES_RS_KEYRMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuVisibilityTEXTRMI = new RadioMenuItem("Text"); + this.menuVisibilityTEXTRMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuVisibilityTEXTRMI.setSelected(true); + + + menuModel.getItems().addAll(this.menuVisibility, this.mergeModelsMI); + this.menuVisibility.getItems().addAll(this.menuVisibilityAllRMI, this.menuVisibilityES_RSRMI, this.menuVisibilityES_RS_KEYRMI, this.menuVisibilityTEXTRMI); + ToggleGroup tggroup = new ToggleGroup(); + tggroup.getToggles().addAll(this.menuVisibilityAllRMI, this.menuVisibilityES_RSRMI, this.menuVisibilityES_RS_KEYRMI); + + + + + Menu menuHelp = new Menu("_Help"); + this.menuVersionMI = new MenuItem("Version"); + this.menuVersionMI.addEventHandler(ActionEvent.ACTION, this.controller); + this.menuVersionMI.setOnAction(e -> { + //TODO: version popup + }); + + this.menuDownloadMI = new MenuItem("_Download"); + this.menuDownloadMI.setOnAction(e -> { + try { + URL url = new URL("https://www.actionobject.eu/"); + Desktop.getDesktop().browse(url.toURI()); + } catch (IOException | URISyntaxException e2) { + + e2.printStackTrace(); + } + }); + menuHelp.getItems().addAll(this.menuDownloadMI, this.menuVersionMI); + + + menuBar.getMenus().addAll(menuFile, menuEdit, menuModel, menuHelp); + + + vBox.getChildren().addAll(menuBar, this.borderPane); + + + Scene scene = new Scene(vBox, 1300.0D, 870.0D); + setScene(scene); + sizeToScene(); + + + getIcons().add(C2.applicationImageIconAsICO); + + + show(); + } + + + + + public void exportModel() { + FileChooser fc = new FileChooser(); + fc.setInitialDirectory(new File("/")); + fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("PNG", "*.png")); + fc.setTitle("Export Map to png"); + File file = fc.showSaveDialog(this); + if (file != null) { + double[] size = this.currentTab.canvas.dssfsdfd43643634(); + WritableImage wi = new WritableImage((int)size[0], (int)size[1]); try { + SnapshotParameters sp = new SnapshotParameters(); + sp.setFill(Paint.valueOf("rgb(27, 27, 30)")); + ImageIO.write(SwingFXUtils.fromFXImage(this.currentTab.canvas.snapshot(sp, wi), null), "png", file); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + + + + public boolean saveModelAs() { + if (this.currentTab == null || this.currentTab.canvas == null) return false; + + FileChooser fc = new FileChooser(); + fc.setInitialDirectory(new File(System.getProperty("user.home"))); + + String tabname = this.currentTab.getText(); + tabname = tabname.replace("*", ""); + fc.setInitialFileName(tabname); + fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("ERM", "*.erm")); + fc.setTitle("Save model as ..."); + File file = fc.showSaveDialog(this); + if (file != null) { + this.currentTab.canvas.setInitialDirectory(file.getParentFile().getAbsolutePath()); + try { + ObjectOutputStream wo = new ObjectOutputStream(new FileOutputStream(file)); + wo.writeObject(this.currentTab.canvas.sddsfsfsdf45645645()); + wo.close(); + + this.currentTab.canvas.setSaveFile(file); + + String databaseName = file.getName().replace(".erm", "") + "db"; + this.currentTab.canvas.dsfdsfd45645zr().setDatabaseName(databaseName); + this.currentTab.setText(file.getName()); + return true; + } catch (IOException e) { + + + return false; + } + } + return false; + } + + + + + + + public void saveSQLScript() throws ZZ20 { + if (this.currentTab == null || this.currentTab.canvas == null) + return; + FileChooser fc = new FileChooser(); + fc.setInitialDirectory(new File(System.getProperty("user.home"))); + + LocalDate today = LocalDate.now(); + String currentDate = ""; + if (this.addCurrentDateToDatabaseNameCB.isSelected()) + { + currentDate = today.getYear() + ((today.getMonthValue() < 10) ? ("0" + today.getMonthValue()) : ""+ today.getMonthValue()) + ((today.getDayOfMonth() < 10) ? ("0" + today.getDayOfMonth()) : ""+ today.getDayOfMonth()); } + fc.setInitialFileName(currentDate + this.currentTab.canvas.dsfdsfd45645zr().getDatabaseName()); + fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("*.SQL", "*.sql")); + fc.setTitle("Save sql script as ..."); + final File file = fc.showSaveDialog(this); + + if (file != null) { + + this.progress = new V1(this); + + Thread t = new Thread(() -> { + FileWriter fw = null; + try { + B3.this.borderPane.setDisable(true); + + fw = new FileWriter(file); + + StringBuffer sb = null; + + + if (B3.this.mySqlStyle.isSelected()) { sb = B3.this.currentTab.canvas.dsfdsfd45645zr().create_MySQL_Script(B3.this.generateInsertsCB.isSelected(), + B3.this.addCurrentDateToDatabaseNameCB.isSelected(), + B3.this.singleInsertStatementCB.isSelected()); } + + else if (B3.this.msSqlStyle.isSelected()) { sb = B3.this.currentTab.canvas.dsfdsfd45645zr().create_MS_SQL_Script(B3.this.generateInsertsCB.isSelected(), + B3.this.addCurrentDateToDatabaseNameCB.isSelected(), + B3.this.singleInsertStatementCB.isSelected()); } + + assert sb != null; + fw.write(sb.toString()); + fw.close(); + + Thread.sleep(2000L); + } + catch (IOException|ZZ20|InterruptedException ex) { + + try { if (fw != null) fw.close(); } catch (IOException ignored) {} + } + + Platform.runLater(() -> { + B3.this.progress.close(); + B3.this.progress = null; + }); + }); + this.progress.setThread(t); + try { t.join(); } catch (InterruptedException ignored) {} + + this.borderPane.setDisable(false); + } + + + + String databaseName = this.currentTab.getText().replace(".erm", "") + "db"; + this.currentTab.canvas.dsfdsfd45645zr().setDatabaseName(databaseName); + } + + public void saveModel() { + if (this.currentTab == null || this.currentTab.canvas == null) + return; + if (this.currentTab.canvas.getSaveFile() == null) { + boolean done = saveModelAs(); + if (done) { + + String tabname = this.currentTab.getText(); + tabname = tabname.replace("*", ""); + this.currentTab.setText(tabname); + } + return; + } + try { + this.currentTab.canvas.setInitialDirectory(this.currentTab.canvas.getSaveFile().getParentFile().getAbsolutePath()); + ObjectOutputStream wo = new ObjectOutputStream(new FileOutputStream(this.currentTab.canvas.getSaveFile())); + wo.writeObject(this.currentTab.canvas.sddsfsfsdf45645645()); + wo.close(); + + String tabname = this.currentTab.getText(); + tabname = tabname.replace("*", ""); + this.currentTab.setText(tabname); + } catch (IOException e) { + + e.printStackTrace(); + } + } + + + + + + + public void readModel() { + FileChooser fc = new FileChooser(); + + if (this.currentTab != null && this.currentTab.canvas != null && this.currentTab.canvas.getInitialDirectory() != null) { fc.setInitialDirectory(new File(this.currentTab.canvas.getSaveFile().getParentFile().getAbsolutePath())); } + else { fc.setInitialDirectory(new File("/")); } + fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("ERM", "*.erm")); + fc.setTitle("Open model"); + File file = fc.showOpenDialog(this); + if (file != null) { + + this.graphicElemLV.getItems().clear(); + + this.currentTab = addNewTab(file); + this.currentTab.canvas.setInitialDirectory(file.getParentFile().getAbsolutePath()); + try { + ObjectInputStream ro = new ObjectInputStream(new FileInputStream(file)); + @SuppressWarnings("unchecked") ArrayList readModel = (ArrayList)ro.readObject(); + + + for (Graphic_Main_Elem gme : readModel) { + gme.setGc(this.currentTab.canvas.getGraphicsContext2D()); + + gme.isVisible = true; + } + + this.currentTab.canvas.dsfds124332(this.currentTab.canvas.sdfsddf345ersdf()); + + this.currentTab.canvas.clearERMDrawCanvas(); + this.currentTab.canvas.safdsadsa65765ewthjk(readModel); + this.currentTab.canvas.sdfsdfds3465er(true); + + + + + this.currentTab.canvas.setSaveFile(file); + this.currentTab.setText(file.getName()); + this.tabPane.getSelectionModel().select(this.currentTab); + + + this.currentTab.canvas.dsfdsdfssdf45645re(); + + ro.close(); + } catch (IOException | ClassNotFoundException e) { + + e.printStackTrace(); + } + } + + + this.selectModeBTN.setSelected(true); + this.creationModelabel.setStyle("-fx-text-fill:white"); + this.selectModeBTN.setStyle("-fx-text-fill:red"); + + this.menuVisibility.setDisable(false); + } + + + public U1 getCurrentTab() { + return this.currentTab; + } + + + + + public void setCurrentTab(U1 currentTab) { + this.currentTab = currentTab; + } + + + + + + public U1 addNewTab(File modelFromFile) { + int number = this.tabPane.getTabs().size(); + + U1 currentTab = new U1(this, "erm" + number + ".erm", modelFromFile); + this.tabPane.getTabs().add(currentTab); + return currentTab; + } + + + + + public ArrayList getToCopyElements() { + return this.toCopyElements; + } + + + + + public void setToCopyElements(ArrayList toCopyElements) { + this.toCopyElements = toCopyElements; + } + + + + + + + private void setMouseHandler(final Labeled node) { + node.setOnMouseEntered(event -> { + B3.this.getScene().getRoot().setCursor(Cursor.HAND); + if (node.getGraphic() != null) + T3.asdasda345435ertretr(node.getGraphic(), 1.4D, 1.1D, 0.4D, 0.3D, 0.4D, -0.2D); + T3.fdssdf4354(node, C2.MouseSelectedColor); + }); + + node.setOnMouseExited(event -> { + B3.this.getScene().getRoot().setCursor(Cursor.DEFAULT); + if (node.getGraphic() != null) + T3.buttonMouseExited(node.getGraphic()); + node.setEffect(null); + }); + } + + +} + + diff --git a/at/fos/ermodel/gui/C1.java b/at/fos/ermodel/gui/C1.java new file mode 100644 index 0000000..1b42129 --- /dev/null +++ b/at/fos/ermodel/gui/C1.java @@ -0,0 +1,157 @@ + package at.fos.ermodel.gui; + + import javafx.event.Event; + import javafx.geometry.Insets; + import javafx.scene.Cursor; + import javafx.scene.control.Alert; + import javafx.scene.control.Button; + import javafx.scene.control.ButtonType; + import javafx.scene.control.Label; + import javafx.scene.image.Image; + import javafx.scene.layout.Background; + import javafx.scene.layout.BackgroundFill; + import javafx.scene.layout.CornerRadii; + import javafx.scene.layout.StackPane; + import javafx.scene.paint.Color; + import javafx.stage.Stage; + import javafx.stage.StageStyle; + import javafx.stage.Window; + import java.util.Optional; + + public class C1 + { + private Optional result; + + public C1(Window window, Alert.AlertType alertType, String title, String header, String contentText, Boolean showAndWait, Image image, String okBtnText, String cancelBtnText, Color btnBackgroundColor, Color btnSelectedColor, Color btnFocusColor) { + Alert alert = setAlert(window, alertType, title, header, contentText, image); + + Button button = (Button)alert.getDialogPane().lookupButton(ButtonType.OK); + if (button != null) { + setButtonLookAndFeel(button, okBtnText, btnBackgroundColor, btnSelectedColor, btnFocusColor); + } + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.CANCEL); + if (button != null) setButtonLookAndFeel(button, cancelBtnText, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.APPLY); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.CLOSE); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.FINISH); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.NEXT); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.NO); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.PREVIOUS); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + button = (Button)alert.getDialogPane().lookupButton(ButtonType.YES); + if (button != null) setButtonLookAndFeel(button, null, btnBackgroundColor, btnSelectedColor, btnFocusColor); + + if (showAndWait) { + this.result = alert.showAndWait(); + } else { + alert.show(); + } + } + + private void setButtonLookAndFeel(final Button button, String buttonText, Color btnBackgroundColor, final Color btnSelectedColor, final Color btnFocusColor) { + button.setBackground(new Background(new BackgroundFill(btnBackgroundColor, new CornerRadii(5.0D), Insets.EMPTY))); + button.setOnMouseEntered(event -> { + button.getScene().getRoot().setCursor(Cursor.HAND); + T3.fdssdf4354(button, btnSelectedColor); + }); + button.setOnMouseExited(event -> { + button.getScene().getRoot().setCursor(Cursor.DEFAULT); + button.setEffect(null); + if (button.isFocused()) { + T3.fdssdf4354(button, btnFocusColor); + } else { + + button.setEffect(null); + } + }); + button.focusedProperty().addListener((obs, oldVal, newVal) -> { + if (button.isFocused()) { + T3.fdssdf4354(button, btnSelectedColor); + } else { + button.setEffect(null); + } + }); + + + if (buttonText != null) button.setText(buttonText); + + } + + + + + + + + + + + + + + + private Alert setAlert(Window window, Alert.AlertType alertType, String title, String header, String contentText, Image image) { + Alert alert = new Alert(alertType); + alert.setTitle(title); + alert.setHeaderText(header); + alert.setContentText(contentText); + alert.initOwner(window); + alert.initStyle(StageStyle.DECORATED); + + + StackPane iv = switch (alertType) { + case ERROR -> + C2.alerterror; + case INFORMATION -> + C2.alertinformation; + default -> + C2.alertconfirmation; + }; + alert.setGraphic(iv); + + alert.getDialogPane().getChildren().stream().filter(node -> node instanceof Label).forEach(node -> ((Label)node).setMinHeight(Double.NEGATIVE_INFINITY)); + alert.getDialogPane().getChildren().stream().filter(node -> node instanceof Label).forEach(node -> ((Label)node).setMinWidth(Double.NEGATIVE_INFINITY)); + alert.getDialogPane().getChildren().stream().filter(node -> node instanceof Label).forEach(node -> ((Label)node).setMaxWidth(Double.NEGATIVE_INFINITY)); + + alert.getDialogPane().setBackground(new Background(new BackgroundFill(Color.GAINSBORO, CornerRadii.EMPTY, Insets.EMPTY))); + + Stage stage = (Stage)alert.getDialogPane().getScene().getWindow(); + + + if (image != null) { + stage.getIcons().add(image); + } + + + stage.setOnCloseRequest(Event::consume); + + + stage.centerOnScreen(); + + stage.setAlwaysOnTop(true); + + return alert; + } + + + + + public Optional getResult() { + return this.result; + } + } + + diff --git a/at/fos/ermodel/gui/C2.java b/at/fos/ermodel/gui/C2.java new file mode 100644 index 0000000..e6ee184 --- /dev/null +++ b/at/fos/ermodel/gui/C2.java @@ -0,0 +1,170 @@ + package at.fos.ermodel.gui; + + import java.io.BufferedReader; + import java.io.InputStream; + import java.util.HashMap; + import java.util.Objects; + + import javafx.geometry.Insets; + import javafx.scene.image.Image; + import javafx.scene.layout.Background; + import javafx.scene.layout.BackgroundFill; + import javafx.scene.layout.CornerRadii; + import javafx.scene.layout.StackPane; + import javafx.scene.paint.Color; + import javafx.scene.text.Font; + import javafx.scene.text.FontWeight; + import javafx.scene.text.Text; + + public class C2 + { + public static final Color MouseSelectedColor = Color.RED; + public static final Color FocusOnComponentColor = Color.BLUE; + public static final Color ButtonBackgroundColor = Color.rgb(179,179,179); + + public static final Color ERMDockablePointColor = Color.rgb(236, 234, 241); + public static final Color ERMTextBorderColor = Color.GREY; + + public static Font ERMFont = Font.font(null, FontWeight.BOLD, 12.0D); + public static Color ERMBackgroundColor = Color.rgb(27, 27, 30); + public static Color ERMForegroundColor = Color.rgb(48, 48, 52); + + public static Color ERMTextColor = Color.rgb(236, 234, 241); + + public static Background AppBackground = new Background(new BackgroundFill(C2.ERMBackgroundColor, CornerRadii.EMPTY, Insets.EMPTY)); + public static Background AppForeground = new Background(new BackgroundFill(C2.ERMForegroundColor, CornerRadii.EMPTY, Insets.EMPTY)); + + + public static StackPane alerterror = new StackPane(); + public static StackPane alertconfirmation = new StackPane(); + public static StackPane alertinformation = new StackPane(); + + + public static Color ERMSelectedColor = Color.RED; + + public static Color ERMESColor = Color.rgb(0,255,0); + + public static Color ERMRSColor = Color.AQUA; + public static Color ERMRSConnColor = Color.AQUA; + + public static Color ERMRSISAColor = Color.BLUEVIOLET; + public static Color ERMISAConnGENERAL = Color.BLUEVIOLET; + public static Color ERMISAConnSPEC = Color.AQUA; + + public static Color ERMATTRColor = Color.GREENYELLOW; + + public static Color ERMLINEColor = Color.CHARTREUSE; + + public static Color TEMPLINEColor = Color.PALEGREEN; + + + public static Image applicationImageIconAsICO; + + + public static int imageWidth = 55; + public static int imageHeight = 32; + + public static Image treeCloseImage; + + public static Image treeOpenImage; + + public static Image attr_conn_attrImage; + public static Image attr_conn_esImage; + public static Image attr_conn_rsImage; + public static Image attr_derived_multi_valueImage; + public static Image attr_derived_one_valueImage; + public static Image attr_key_valueImage; + public static Image attr_multi_valueImage; + public static Image attr_one_valueImage; + public static Image attr_weak_key_valueImage; + public static Image es_associativeImage; + public static Image es_weakImage; + public static Image esImage; + public static Image rs_conn_esImage; + public static Image rs_id_conn_es_weakImage; + public static Image rs_id_conn_esImage; + public static Image rs_idImage; + public static Image rs_isa_conn_general_esImage; + public static Image rs_isa_conn_special_esImage; + public static Image rs_isaImage; + public static Image rsImage; + public static Image textImage; + public static Image textWithoutBorderImage; + public static HashMap randomDataFiles = new HashMap<>(); + public static HashMap randomDataFilesExtern = new HashMap<>(); + + + + + + public C2() { + + alerterror.getStyleClass().add("alert.error.dialog-pane"); + alertinformation.getStyleClass().add("alert.error.dialog-pane"); + alertconfirmation.getStyleClass().add("alert.error.dialog-pane"); + + + String appImages = "/applicationimages/"; + String appData = "/data/"; + + + randomDataFiles.put("Random Color", getClass().getResourceAsStream(appData+"colors.txt")); + randomDataFiles.put("Random Company", getClass().getResourceAsStream(appData+"companies.txt")); + randomDataFiles.put("Random Country", getClass().getResourceAsStream(appData+"countries.txt")); + randomDataFiles.put("Random Departmentname", getClass().getResourceAsStream(appData+"departmentnames.txt")); + randomDataFiles.put("Random Firstname", getClass().getResourceAsStream(appData+"firstnames.txt")); + randomDataFiles.put("Random Jobname", getClass().getResourceAsStream(appData+"jobnames.txt")); + randomDataFiles.put("Random Language", getClass().getResourceAsStream(appData+"languages.txt")); + randomDataFiles.put("Random Lastname", getClass().getResourceAsStream(appData+"lastnames.txt")); + randomDataFiles.put("Random Mediacategory", getClass().getResourceAsStream(appData+"mediacategories.txt")); + randomDataFiles.put("Random Mediapublisher", getClass().getResourceAsStream(appData+"mediapublishers.txt")); + randomDataFiles.put("Random Mediatitle", getClass().getResourceAsStream(appData+"mediatitles.txt")); + randomDataFiles.put("Random Mediatype", getClass().getResourceAsStream(appData+"mediatypes.txt")); + randomDataFiles.put("Random Place", getClass().getResourceAsStream(appData+"places.txt")); + randomDataFiles.put("Random Profession", getClass().getResourceAsStream(appData+"professions.txt")); + randomDataFiles.put("Random Rentalequipment", getClass().getResourceAsStream(appData+"rentalequipment.txt")); + randomDataFiles.put("Random Street", getClass().getResourceAsStream(appData+"streets.txt")); + + applicationImageIconAsICO = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"erdlogo.png"))); + attr_conn_attrImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_conn_attr.png"))); + attr_conn_esImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_conn_es.png"))); + attr_conn_rsImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_conn_rs.png"))); + attr_derived_multi_valueImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_derived_multi_value.png"))); + attr_derived_one_valueImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_derived_one_value.png"))); + attr_key_valueImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_key_value.png"))); + attr_multi_valueImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_multi_value.png"))); + attr_one_valueImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_one_value.png"))); + attr_weak_key_valueImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"attr_weak_key_value.png"))); + es_associativeImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"es_associative.png"))); + es_weakImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"es_weak.png"))); + esImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"es.png"))); + rs_conn_esImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_conn_es.png"))); + rs_id_conn_es_weakImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_id_conn_es_weak.png"))); + rs_id_conn_esImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_id_conn_es.png"))); + rs_idImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_id.png"))); + rs_isa_conn_general_esImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_isa_conn_general_es.png"))); + rs_isa_conn_special_esImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_isa_conn_special_es.png"))); + rs_isaImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs_isa.png"))); + rsImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"rs.png"))); + textImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"text.png"))); + textWithoutBorderImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"text_without_border.png"))); + treeOpenImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"tree_open.png"))); + treeCloseImage = new Image(Objects.requireNonNull(getClass().getResourceAsStream(appImages+"tree_close.png"))); + } + + public static double computeTextWidth(String text, double wrappingWidth) { + Text helper = new Text(); + helper.setFont(ERMFont); + helper.setText(text); + + helper.setWrappingWidth(0.0D); + helper.setLineSpacing(0.0D); + double w = Math.min(helper.prefWidth(-1.0D), wrappingWidth); + helper.setWrappingWidth(Math.ceil(w)); + return Math.ceil(helper.getLayoutBounds().getWidth()); + } + + public static double computeTextHeight() { + return ERMFont.getSize(); + } + } \ No newline at end of file diff --git a/at/fos/ermodel/gui/C3.java b/at/fos/ermodel/gui/C3.java new file mode 100644 index 0000000..e895fa1 --- /dev/null +++ b/at/fos/ermodel/gui/C3.java @@ -0,0 +1,151 @@ + package at.fos.ermodel.gui; + public class C3 + implements Comparable + { + private final String columnName; + private String datatype; + private boolean isKey; + private boolean isNullable; + private boolean isUnique; + private boolean isAutoincrement; + private long autoincrementStartAt; + private T2 referencesTo; + private long referstoGraphicalElement; + protected String dataGenerationType; + protected String par1; + protected String par2; + + public C3(String columnName, String datatype, boolean isKey, boolean isNullable, boolean isUnique, boolean isAutoincrement, long autoincrementStartAt, T2 referencesTo, long referstoGraphicalElement, String dataGenerationType, String par1, String par2) { + this.columnName = columnName; + this.datatype = datatype; + this.isKey = isKey; + this.isNullable = isNullable; + this.isUnique = isUnique; + this.isAutoincrement = isAutoincrement; + this.autoincrementStartAt = autoincrementStartAt; + this.referencesTo = referencesTo; + this.referstoGraphicalElement = referstoGraphicalElement; + this.dataGenerationType = dataGenerationType; + this.par1 = par1; + this.par2 = par2; + } + + + + + + + + + + + + + + + + + + + + + + public C3(String columnName) { + this.columnName = columnName; + } + + + + + + public String getColumnName() { + return this.columnName; + } + + + public String getDatatype() { + return this.datatype; + } + + + public boolean isKey() { + return this.isKey; + } + + + public boolean isNullable() { + return this.isNullable; + } + + + public boolean isUnique() { + return this.isUnique; + } + + + public boolean isAutoincrement() { + return this.isAutoincrement; + } + + + public long getAutoincrementStartAt() { + return this.autoincrementStartAt; + } + + + public T2 getReferencesTo() { + return this.referencesTo; + } + + + public int hashCode() { + int result = 1; + result = 31 * result + ((this.columnName == null) ? 0 : this.columnName.hashCode()); + return result; + } + + + + + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + C3 other = (C3)obj; + if (this.columnName == null) { + return other.columnName == null; + } else return this.columnName.equals(other.columnName); + } + + + + + public String toString() { + return "RM_Column [columnName=" + this.columnName + ", datatype=" + this.datatype + ", isKey=" + this.isKey + ", isNullable=" + + this.isNullable + ", isUnique=" + this.isUnique + ", isAutoincrement=" + this.isAutoincrement + ", referencesTo=" + + this.referencesTo + ", referstoGraphicalElement=" + this.referstoGraphicalElement + ", dataGenerationType=" + + this.dataGenerationType + ", par1=" + this.par1 + ", par2=" + this.par2 + "]"; + } + + + + + public int compareTo(C3 o) { + if (this.isKey && !o.isKey) return -1; + if (!this.isKey && o.isKey) return 1; + return 0; + } + + + + + + public long getReferstoGraphicalElement() { + return this.referstoGraphicalElement; + } + } + + diff --git a/at/fos/ermodel/gui/C4.java b/at/fos/ermodel/gui/C4.java new file mode 100644 index 0000000..bfb86a8 --- /dev/null +++ b/at/fos/ermodel/gui/C4.java @@ -0,0 +1,917 @@ + package at.fos.ermodel.gui; + + import java.io.BufferedReader; + import java.io.FileInputStream; + import java.io.FileNotFoundException; + import java.io.InputStreamReader; + import java.nio.charset.StandardCharsets; + import java.time.LocalDate; + import java.util.ArrayList; + import java.util.Collections; + import java.util.HashMap; + import java.util.HashSet; + import javafx.application.Platform; + + + + + + + + + + + + + + + + + + + + + public class C4 + { + private String databaseName; + private ArrayList tables; + private StringBuffer sqlScript; + + public C4(String databaseName) { + this.databaseName = databaseName; + this.tables = new ArrayList<>(); + } + + + + + + + public boolean addTable(T1 table) { + if (this.tables.contains(table)) return true; + return !this.tables.add(table); + } + + + + + + + public void removeTable(T1 table) { + this.tables.remove(table); + } + + + + + public String getDatabaseName() { + return this.databaseName; + } + + + + public void setDatabaseName(String databaseName) { + this.databaseName = databaseName; + } + + + + + + public String toString() { + return "RM_Database [databaseName=" + this.databaseName + ", tables=" + this.tables + "]"; + } + + + + + public ArrayList getTables() { + return this.tables; + } + + + + + public void setTables(ArrayList tables) { + this.tables = tables; + } + + + + + public void sortByTableName() { + Collections.sort(this.tables); + } + + + + + + + + private String addChars() { + return String.valueOf(' ').repeat(5); + } + + + + + + + + + + + + + + + + public StringBuffer create_MS_SQL_Script(boolean createInsertStatements, boolean addCDToDBName, boolean singeInserts) throws ZZ20 { + LocalDate today = LocalDate.now(); + String currentDate = today.getYear() + ( + (today.getMonthValue() < 10) ? ("0" + today.getMonthValue()) : ""+ today.getMonthValue()) + ( + (today.getDayOfMonth() < 10) ? ("0" + today.getDayOfMonth()) : ""+ today.getDayOfMonth()); + + + if (addCDToDBName) this.databaseName = this.databaseName + currentDate; + + + this.databaseName = T3.replaceSpecialChars(this.databaseName); + + + this.databaseName = this.databaseName.toLowerCase(); + + + this.sqlScript = new StringBuffer(); + + this.sqlScript.append("-- #######################################################\n"); + this.sqlScript.append("-- auto generated ddl-script ###########################\n"); + this.sqlScript.append("-- generated sql creation script for ER model\n"); + this.sqlScript.append("-- switch autocommit off\n"); + this.sqlScript.append("set implicit_transactions off;\n"); + this.sqlScript.append("-- database-#############################################\n"); + this.sqlScript.append("use master;\n"); + this.sqlScript.append("drop database if exists ").append(this.databaseName).append(";").append("\n"); + this.sqlScript.append("create database ").append(this.databaseName).append(";").append("\n"); + this.sqlScript.append("go \n"); + this.sqlScript.append("use ").append(this.databaseName).append(";").append("\n"); + + this.sqlScript.append("-- tables-#################################################\n"); + for (T1 table : this.tables) { + this.sqlScript = this.sqlScript.append("-- table ").append(table.getTablename()).append("\n"); + this.sqlScript = this.sqlScript.append("create table ").append(table.getTablename()).append("(").append("\n"); + StringBuilder keypart = new StringBuilder("primary key("); + + int autoincrementCounter = 0; + for (C3 column : table.getSkjdfhgdskjf674534()) { + keypart.append(column.isKey() ? (column.getColumnName() + ",") : ""); + this.sqlScript = this.sqlScript.append(addChars()).append(column.getColumnName()).append(" ").append(column.getDatatype()).append(column.isKey() ? " not null" : "").append(( + !column.isKey() && !column.isNullable()) ? " not null" : "").append(column.isAutoincrement() ? (" identity (" + column.getAutoincrementStartAt() + ",1) ") : "").append(column.isUnique() ? " unique" : "").append(",").append("\n"); + if (column.isAutoincrement()) { + autoincrementCounter++; + } + } + + + keypart = new StringBuilder(keypart.substring(0, keypart.length() - 1)); + keypart.append(")").append("\n"); + this.sqlScript = this.sqlScript.append(addChars()).append(keypart).append(")"); + this.sqlScript.append(";\n\n"); + if (autoincrementCounter != 1) + { + + if (autoincrementCounter > 1) { + throw new ZZ20("There is only one autoincrement value allowed, and it must be the key. Table: " + table.getTablename()); + } + } + } + + if (createInsertStatements) { + try { + allTablesSetForGeneration(); + allColumnsSetForGeneration(); + } catch (ZZ20 ex) { + throw new ZZ20(ex.getMessage()); + } + createInsertStatements(this.sqlScript, singeInserts, false); + } + + + this.sqlScript.append("\n-- foreign keys-#################################################\n"); + for (T1 table : this.tables) { + + ArrayList fkColumns = new ArrayList<>(); + for (C3 column : table.getSkjdfhgdskjf674534()) { + if (column.getReferencesTo() != null) fkColumns.add(column); + } + if (fkColumns.size() == 0) { + continue; + } + + HashSet tableNamesInfkColumns = new HashSet<>(); + for (C3 fksamecol : fkColumns) { + tableNamesInfkColumns.add(fksamecol.getReferencesTo().tablename()); + } + + + + + ArrayList equalColumnsBecauseRecursive = new ArrayList<>(); + for (int i = 0; i < fkColumns.size(); i++) { + for (int j = i + 1; j < fkColumns.size(); j++) { + if (fkColumns.get(i).getReferencesTo().tablename().equals(fkColumns.get(j).getReferencesTo().tablename()) && fkColumns.get(i).getReferencesTo().columnname().equals(fkColumns.get(j).getReferencesTo().columnname())) { + equalColumnsBecauseRecursive.add(fkColumns.get(i)); + equalColumnsBecauseRecursive.add(fkColumns.get(j)); + } + } + } + for (C3 col : equalColumnsBecauseRecursive) { + this.sqlScript = this.sqlScript.append("alter table ").append(table.getTablename()).append("\n"); + this.sqlScript.append("add foreign key ("); + this.sqlScript = this.sqlScript.append(col.getColumnName()).append(")").append(" references ").append(col.getReferencesTo().tablename()).append("(").append(col.getReferencesTo().columnname()).append(")").append(" on delete no action on update no action;\n"); + + tableNamesInfkColumns.remove(col.getReferencesTo().tablename()); + } + + + for (String tableName : tableNamesInfkColumns) { + + this.sqlScript = this.sqlScript.append("alter table ").append(table.getTablename()).append("\n"); + this.sqlScript.append("add foreign key ("); + StringBuilder columnsOrig = new StringBuilder(); + StringBuilder refColumns = new StringBuilder(" references " + tableName + "("); + for (C3 fkcolumn : fkColumns) { + if (tableName.equals(fkcolumn.getReferencesTo().tablename())) { + columnsOrig.append(fkcolumn.getColumnName()).append(","); + refColumns.append(fkcolumn.getReferencesTo().columnname()).append(","); + } + } + columnsOrig = new StringBuilder(columnsOrig.substring(0, columnsOrig.length() - 1)); + columnsOrig.append(")"); + refColumns = new StringBuilder(refColumns.substring(0, refColumns.length() - 1)); + refColumns.append(")"); + this.sqlScript.append(columnsOrig).append(refColumns).append(" on delete no action on update no action;\n"); + } + this.sqlScript.replace(this.sqlScript.length() - 2, this.sqlScript.length(), ";\n"); + } + + this.sqlScript.append("-- commit all changes\n"); + this.sqlScript.append("commit;"); + + return this.sqlScript; + } + + + + + + + + + + + + + + + + + + + public StringBuffer create_MySQL_Script(boolean createInsertStatements, boolean addCDToDBName, boolean singeInserts) throws ZZ20 { + LocalDate today = LocalDate.now(); + String currentDate = today.getYear() + ( + (today.getMonthValue() < 10) ? ("0" + today.getMonthValue()) : ""+ today.getMonthValue()) + ( + (today.getDayOfMonth() < 10) ? ("0" + today.getDayOfMonth()) : ""+ today.getDayOfMonth()); + + + if (addCDToDBName) this.databaseName = currentDate + this.databaseName; + + + this.databaseName = T3.replaceSpecialChars(this.databaseName); + + + this.databaseName = this.databaseName.toLowerCase(); + + this.sqlScript = new StringBuffer(); + + this.sqlScript.append("-- #######################################################\n"); + this.sqlScript.append("-- auto generated ddl-script ###########################\n"); + this.sqlScript.append("-- generated sql creation script for ER model\n"); + this.sqlScript.append("-- database-#############################################\n"); + this.sqlScript.append("drop database if exists ").append(this.databaseName).append(";").append("\n"); + this.sqlScript.append("create database ").append(this.databaseName).append(";").append("\n"); + this.sqlScript.append("use ").append(this.databaseName).append(";").append("\n"); + this.sqlScript.append("-- switch autocommit off\n"); + this.sqlScript.append("set autocommit=0;\n"); + + this.sqlScript.append("-- tables-#################################################\n"); + for (T1 table : this.tables) { + this.sqlScript = this.sqlScript.append("-- table ").append(table.getTablename()).append("\n"); + this.sqlScript = this.sqlScript.append("create table ").append(table.getTablename()).append("(").append("\n"); + StringBuilder keypart = new StringBuilder("primary key("); + + int autoincrementCounter = 0; + long holdAutoincrementStartAt = 1L; + for (C3 column : table.getSkjdfhgdskjf674534()) { + keypart.append(column.isKey() ? (column.getColumnName() + ",") : ""); + this.sqlScript = this.sqlScript.append(addChars()).append(column.getColumnName()).append(" ").append(column.getDatatype()).append(column.isKey() ? " not null" : "").append(( + !column.isKey() && !column.isNullable()) ? " not null" : "").append(column.isAutoincrement() ? " auto_increment " : "").append(column.isUnique() ? " unique" : "").append(",").append("\n"); + if (column.isAutoincrement()) { + autoincrementCounter++; + holdAutoincrementStartAt = column.getAutoincrementStartAt(); + } + } + + keypart = new StringBuilder(keypart.substring(0, keypart.length() - 1)); + keypart.append(")").append("\n"); + this.sqlScript = this.sqlScript.append(addChars()).append(keypart).append(")"); + if (autoincrementCounter == 1) { + this.sqlScript.append("auto_increment=").append(holdAutoincrementStartAt); + } + else if (autoincrementCounter > 1) { + throw new ZZ20("There is only one autoincrement value allowed, and it must be the key. Table: " + table.getTablename()); + } + this.sqlScript.append(";\n\n"); + } + + + if (createInsertStatements) { + try { + allTablesSetForGeneration(); + allColumnsSetForGeneration(); + } catch (ZZ20 ex) { + throw new ZZ20(ex.getMessage()); + } + + createInsertStatements(this.sqlScript, singeInserts, true); + } + + + this.sqlScript.append("\n-- foreign keys-#################################################\n"); + for (T1 table : this.tables) { + + ArrayList fkColumns = new ArrayList<>(); + for (C3 column : table.getSkjdfhgdskjf674534()) { + if (column.getReferencesTo() != null) fkColumns.add(column); + } + if (fkColumns.size() == 0) + continue; this.sqlScript = this.sqlScript.append("alter table ").append(table.getTablename()).append("\n"); + + + HashSet tableNamesInfkColumns = new HashSet<>(); + for (C3 fksamecol : fkColumns) { + tableNamesInfkColumns.add(fksamecol.getReferencesTo().tablename()); + } + + + + + ArrayList equalColumnsBecauseRecursive = new ArrayList<>(); + for (int i = 0; i < fkColumns.size(); i++) { + for (int j = i + 1; j < fkColumns.size(); j++) { + if (fkColumns.get(i).getReferencesTo().tablename().equals(fkColumns.get(j).getReferencesTo().tablename()) && fkColumns.get(i).getReferencesTo().columnname().equals(fkColumns.get(j).getReferencesTo().columnname())) { + equalColumnsBecauseRecursive.add(fkColumns.get(i)); + equalColumnsBecauseRecursive.add(fkColumns.get(j)); + } + } + } + for (C3 col : equalColumnsBecauseRecursive) { + this.sqlScript.append("add foreign key ("); + this.sqlScript = this.sqlScript.append(col.getColumnName()).append(")").append(" references ").append(col.getReferencesTo().tablename()).append("(").append(col.getReferencesTo().columnname()).append(")").append(" on delete restrict on update restrict,\n"); + + tableNamesInfkColumns.remove(col.getReferencesTo().tablename()); + } + + + for (String tableName : tableNamesInfkColumns) { + + this.sqlScript.append("add foreign key ("); + StringBuilder columnsOrig = new StringBuilder(); + StringBuilder refColumns = new StringBuilder(" references " + tableName + "("); + for (C3 fkcolumn : fkColumns) { + if (tableName.equals(fkcolumn.getReferencesTo().tablename())) { + columnsOrig.append(fkcolumn.getColumnName()).append(","); + refColumns.append(fkcolumn.getReferencesTo().columnname()).append(","); + } + } + columnsOrig = new StringBuilder(columnsOrig.substring(0, columnsOrig.length() - 1)); + columnsOrig.append(")"); + refColumns = new StringBuilder(refColumns.substring(0, refColumns.length() - 1)); + refColumns.append(")"); + this.sqlScript.append(columnsOrig).append(refColumns).append(" on delete restrict on update restrict,\n"); + } + this.sqlScript.replace(this.sqlScript.length() - 2, this.sqlScript.length(), ";\n"); + } + + this.sqlScript.append("-- commit all changes\n"); + this.sqlScript.append("commit;"); + + return this.sqlScript; + } + + + + + + + + + private void allColumnsSetForGeneration() throws ZZ20 { + for (T1 table : this.tables) { + for (C3 column : table.getSkjdfhgdskjf674534()) { + + if (!column.isNullable() && + !column.isAutoincrement() && column.getReferencesTo() == null && ( + column.dataGenerationType == null || column.dataGenerationType.equals("No"))) { + throw new ZZ20("There are unset columns for insert statement generation:" + column.getColumnName()); + } + } + } + } + + + + + + + private void allTablesSetForGeneration() throws ZZ20 { + for (T1 table : this.tables) { + if (!table.isCreateInserts()) { + throw new ZZ20("Table is not set for generating inserts:" + table.getTablename()); + } + } + } + + + + + + + + + private String generateRandomValue(C3 column) throws ZZ20 { + String randomValue; + try { String[] datumteil; LocalDate from, till; String str; + switch ((str = column.dataGenerationType).hashCode()) { + case -1601184309 -> { + if (!str.equals("Random Boolean")) { + break; + } + randomValue = T3.getRandomBoolean(); + return randomValue; + } + case -123632396 -> { + if (!str.equals("Random Decimal")) break; + randomValue = T3.getRandomDecimal(Integer.parseInt(column.par1), Integer.parseInt(column.par2)); + return randomValue; + } + case 292156129 -> { + if (!str.equals("Random Integer")) break; + if (Integer.parseInt(column.par1) >= Integer.parseInt(column.par2)) + throw new ZZ20("Column: " + column.getColumnName() + "\n" + "For Random Integer generation: from < till"); + randomValue = T3.getRandomInteger(Integer.parseInt(column.par1), Integer.parseInt(column.par2)); + return randomValue; + } + case 908695787 -> { + if (!str.equals("Random Date")) break; + datumteil = column.par1.split("\\."); + from = LocalDate.of(Integer.parseInt(datumteil[2]), Integer.parseInt(datumteil[1]), Integer.parseInt(datumteil[0])); + datumteil = column.par2.split("\\."); + till = LocalDate.of(Integer.parseInt(datumteil[2]), Integer.parseInt(datumteil[1]), Integer.parseInt(datumteil[0])); + randomValue = T3.getRandomDate(from, till); + return randomValue; + } + case 909176426 -> { + if (!str.equals("Random Text")) break; + randomValue = T3.getRandomTextGivenLength(Integer.parseInt(column.par1)); + return randomValue; + } + case 2089790400 -> { + if (!str.equals("Extern")) break; + randomValue = T3.getRandomData(column.dataGenerationType, column.par1); + return randomValue; + } + } + randomValue = T3.getRandomData(column.dataGenerationType, null); } catch (NumberFormatException nfe) { throw new ZZ20("Column: " + column.getColumnName() + "\n" + "There is a data conversion problem: " + column.par1 + "/" + column.par2); } return randomValue; + } + + + + + + + private int getNumberValuesOfRandomData(C3 column) { + ArrayList randomDataAsList; + if (column.dataGenerationType.equals("Extern")) { + randomDataAsList = T3.randomData.get(column.par1); + if (randomDataAsList == null) { + T3.readRandomData("Extern", column.par1); + randomDataAsList = T3.randomData.get(column.par1); + } + } else { + randomDataAsList = T3.randomData.get(column.dataGenerationType); + } if (randomDataAsList != null) return randomDataAsList.size(); + return -1; + } + + + + + private void createFilehandleForExternalDataSources() throws ZZ20 { + for (T1 table : this.tables) { + for (C3 column : table.getSkjdfhgdskjf674534()) { + if (column.dataGenerationType == null || + !column.dataGenerationType.equals("Extern")) + continue; BufferedReader br = C2.randomDataFilesExtern.get(column.par1); + if (br == null) { + + BufferedReader fr; + try { + fr = new BufferedReader(new InputStreamReader(new FileInputStream(column.par2), StandardCharsets.UTF_8)); + + C2.randomDataFilesExtern.put(column.par1, fr); + } catch (FileNotFoundException e) { + + throw new ZZ20("There is a problem with an external datasource:" + column.getColumnName()); + } + } + } + } + } + + + + + + + + + public void createDependency() { + for (T1 table : this.tables) { + for (C3 column : table.getSkjdfhgdskjf674534()) { + if (column.getReferencesTo() != null) { + String tablename = column.getReferencesTo().tablename(); + T1 dependsOn = getTableGivenTablename(tablename); + table.addTableDepdendentOn(dependsOn); + + assert dependsOn != null; + ArrayList keyColumns = dependsOn.getKeyColumns(); + + table.getColumnsOfDependentOnTable().put(dependsOn, keyColumns); + } + } + } + + } + + + + + + private HashMap> initializeColumns() { + HashMap> holdValues = new HashMap<>(); + for (T1 table : this.tables) { + + if (!table.isCreateInserts()) + continue; for (C3 column : table.getSkjdfhgdskjf674534()) { + + + if (column.dataGenerationType != null && column.dataGenerationType.equals("No") && column.isNullable()) + continue; holdValues.put(table.getTablename() + "." + column.getColumnName(), null); + } + } + return holdValues; + } + + + + + + + + + private T1 getTableGivenTablename(String tablename) { + for (T1 table : this.tables) { + if (table.getTablename().equals(tablename)) return table; + } + return null; + } + + + + + + + + private boolean allColumnValuesCreated(HashMap> columnValues) { + int counter = 0; + for (T1 table : this.tables) { + + if (!table.isCreateInserts()) + continue; for (C3 column : table.getSkjdfhgdskjf674534()) { + ArrayList values = columnValues.get(table.getTablename() + "." + column.getColumnName()); + if (values != null && values.size() > 0) counter++; + } + } + return counter >= columnValues.size(); + } + + + + + + + + + + private void allDependentCreated(T1 table, HashMap> createdColumns) { + for (T1 dependsOn : table.getDependsOnTable()) { + for (C3 column : dependsOn.getSkjdfhgdskjf674534()) { + if (column.isKey()) { + ArrayList values = createdColumns.get(dependsOn.getTablename() + "." + column.getColumnName()); + if (values == null) return; + } + } + } + } + + + + + + + + private HashMap> createColumnValues() throws ZZ20 { + Platform.runLater(() -> V1.thisActionMessageDialog.getShowFilename().setText("create column values")); + + + + HashMap> columnValues = initializeColumns(); + + createFilehandleForExternalDataSources(); + + + boolean done = false; + + + createDependency(); + + + + + + + + + + + + + + while (!done) { + for (T1 table : this.tables) { + for (C3 column : table.getSkjdfhgdskjf674534()) { + + if (column.isNullable() && column.dataGenerationType != null && column.dataGenerationType.equals("No")) + continue; + ArrayList values = new ArrayList<>(); + + boolean valuesExist = true; + ArrayList checkValues = columnValues.get(table.getTablename() + "." + column.getColumnName()); + if (checkValues == null) valuesExist = false; + + if (column.isKey() && column.isAutoincrement() && !valuesExist) { + long autoincrementStartAt = column.getAutoincrementStartAt(); + for (int i = 0; i < table.getJdshfalkajsd677676(); i++) { + values.add(String.valueOf(autoincrementStartAt++)); + + } + } + else if (column.isKey() && column.getReferencesTo() == null && !valuesExist) { + for (int i = 0; i < table.getJdshfalkajsd677676(); i++) { + String randomValue = generateRandomValue(column); + + values.add(String.valueOf(randomValue)); + } + + } + else if (column.isKey() && column.getReferencesTo() != null && !valuesExist) { + + HashMap> x = getStringArrayListHashMap(columnValues, table, column, values); + if (x != null) return x; + + } + else if (column.getReferencesTo() != null && !valuesExist) { + + getStringArrayListHashMap(columnValues, table, column, values); + + } + else if (!valuesExist) { + + if (column.isUnique()) { + + int numberPossibleValues = getNumberValuesOfRandomData(column); + if (numberPossibleValues != -1) + { + + if (numberPossibleValues < table.getJdshfalkajsd677676()) { + throw new ZZ20("Column " + column.getColumnName() + " is defined as unique. \nNot enough values for generation mode\n" + + "Max numbers allowed: " + numberPossibleValues + "\n" + + column.dataGenerationType + "/" + column.par1 + "/" + column.par2); + } + } + } + + for (int i = 0; i < table.getJdshfalkajsd677676(); i++) { + String randomValue = generateRandomValue(column); + + + while (column.isUnique() && values.contains(randomValue)) { + randomValue = generateRandomValue(column); + } + values.add(String.valueOf(randomValue)); + } + } + + if (values.size() > 0) { + columnValues.put(table.getTablename() + "." + column.getColumnName(), values); + } + } + } + + + if (allColumnValuesCreated(columnValues)) done = true; + + } + return columnValues; + } + + private HashMap> getStringArrayListHashMap(HashMap> columnValues, T1 table, C3 column, ArrayList values) { + allDependentCreated(table, columnValues); + for (int i = 0; i < table.getJdshfalkajsd677676(); i++) + { + ArrayList valuesPK = columnValues.get(column.getReferencesTo().tablename() + "." + column.getReferencesTo().columnname()); + if (valuesPK == null) + break; String randomValue = valuesPK.get(i % valuesPK.size()); + + values.add(String.valueOf(randomValue)); + } + return null; + } + + + private void createInsertStatements(StringBuffer sqlScript, boolean singleInserts, boolean mysql) throws ZZ20 { + //System.out.println("Generating insert statement"); + HashMap> holdPKValuesForFK = createColumnValues(); + + + + for (T1 table : this.tables) { + + ArrayList keyColumns = new ArrayList<>(); + for (C3 column : table.getSkjdfhgdskjf674534()) { + if (column.isKey()) { + keyColumns.add(table.getTablename() + "." + column.getColumnName()); + } + } + StringBuilder concatKeyValue; + ArrayList concatKeyValues = new ArrayList<>(); + int deleted = 0; + + try { + for (int i = 0; i < table.getJdshfalkajsd677676(); i++) { + concatKeyValue = new StringBuilder(); + for (String key : keyColumns) { + ArrayList valuesPK = holdPKValuesForFK.get(key); + concatKeyValue.append(valuesPK.get(i)); + } + + if (!concatKeyValues.contains(concatKeyValue.toString())) { concatKeyValues.add(concatKeyValue.toString()); } + else + + { for (C3 column : table.getSkjdfhgdskjf674534()) { + ArrayList valuesPK = holdPKValuesForFK.get(table.getTablename() + "." + column.getColumnName()); + valuesPK.remove(i); + holdPKValuesForFK.put(table.getTablename() + "." + column.getColumnName(), valuesPK); + } + i--; + deleted++; } + + + } + } catch (IndexOutOfBoundsException ignored) {} + + + + + table.setJdshfalkajsd677676(table.getJdshfalkajsd677676() - deleted); + } + + + sqlScript.append("-- insert-#################################################\n"); + if (!mysql) { + sqlScript.append("begin transaction;\n"); + } + for (T1 table : this.tables) { + if (table.isCreateInserts()) { + Platform.runLater(() -> V1.thisActionMessageDialog.getShowFilename().setText(table.getTablename() + " ... create")); + + + sqlScript.append("\n-- table ").append(table.getTablename()); + + if (table.hasAutoincrement() && !mysql) { + sqlScript.append("\nset identity_insert ").append(table.getTablename()).append(" on;\n"); + } + for (int i = 0; i < table.getJdshfalkajsd677676(); i++) { + + if (!singleInserts) { + if (i == 0) { + addInsertTable(sqlScript, table); + } + sqlScript.append("\t\t("); + StringBuilder valuespart = new StringBuilder(); + + for (C3 column : table.getSkjdfhgdskjf674534()) { + + if (!column.isNullable() || column.dataGenerationType == null || !column.dataGenerationType.equals("No")) { + ArrayList values = holdPKValuesForFK.get(table.getTablename() + "." + column.getColumnName()); + valuespart.append("'").append(values.get(i)).append("'").append(","); + } + } + valuespart = new StringBuilder(valuespart.substring(0, valuespart.length() - 1)); + valuespart.append(")"); + sqlScript.append(valuespart).append((i < table.getJdshfalkajsd677676() - 1L) ? "," : ";").append("\n"); + } + else { + + addInsertTable(sqlScript, table); + sqlScript.append("\t\t("); + StringBuilder valuespart = new StringBuilder(); + + for (C3 column : table.getSkjdfhgdskjf674534()) { + + if (!column.isNullable() || column.dataGenerationType == null || !column.dataGenerationType.equals("No")) { + ArrayList values = holdPKValuesForFK.get(table.getTablename() + "." + column.getColumnName()); + valuespart.append("'").append(values.get(i)).append("'").append(","); + } + } + valuespart = new StringBuilder(valuespart.substring(0, valuespart.length() - 1)); + valuespart.append(");"); + sqlScript.append(valuespart); + } + } + + if (table.hasAutoincrement() && !mysql) { + sqlScript.append("\nset identity_insert ").append(table.getTablename()).append(" off;\n"); + } + } + Platform.runLater(() -> V1.thisActionMessageDialog.getShowFilename().setText(table.getTablename() + " ... done")); + } + + + } + + private void addInsertTable(StringBuffer sqlScript, T1 table) { + sqlScript.append("\ninsert into ").append(table.getTablename()).append("("); + + StringBuilder columnspart = new StringBuilder(); + for (C3 column : table.getSkjdfhgdskjf674534()) { + + if (!column.isNullable() || column.dataGenerationType == null || !column.dataGenerationType.equals("No")) + columnspart.append(column.getColumnName()).append(","); + } + columnspart = new StringBuilder(columnspart.substring(0, columnspart.length() - 1)); + columnspart.append(")"); + sqlScript.append(columnspart).append(" values\n"); + } + + + public ArrayList getKeyColumnsGivenRelation(long referstoGraphicalElement) { + for (T1 table : this.tables) { + if (table.getReferstoGraphicalElement() == referstoGraphicalElement) return table.getKeyColumns(); + } + return null; + } + + + public T1 getTableGivenNumber(long referstoGraphicalElement) { + for (T1 table : this.tables) { + if (table.getReferstoGraphicalElement() == referstoGraphicalElement) return table; + } + return null; + } + + + public T1 getColumnGivenNumber(long referstoGraphicalElement) { + for (T1 table : this.tables) { + for (C3 column : table.getSkjdfhgdskjf674534()) { + if (column.getReferstoGraphicalElement() == referstoGraphicalElement) return table; + } + } + return null; + } + + + } \ No newline at end of file diff --git a/at/fos/ermodel/gui/Graphic_ATTR_Elem.java b/at/fos/ermodel/gui/Graphic_ATTR_Elem.java new file mode 100644 index 0000000..1d580ae --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ATTR_Elem.java @@ -0,0 +1,396 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public abstract class Graphic_ATTR_Elem + extends Graphic_Figure_Elem + implements U2 +{ + @Serial + private static final long serialVersionUID = 1L; + protected boolean createColumn; + protected String columnPostfix; + protected String columnName; + protected String mvRelationname; + protected String mvRelationnamePraefix; + protected String datatype; + protected boolean isKey; + protected boolean isAutoincrement; + protected long autoincrementStartAt; + protected boolean isNullable; + protected boolean isUnique; + protected String dataGenerationType; + protected String par1; + protected String par2; + protected String par1_label; + protected String par2_label; + + public Graphic_ATTR_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, name, elementID); + + this.xPos = x; + this.yPos = y; + this.createColumn = true; + this.columnName = T3.replaceSpecialChars(this.name.toLowerCase()); + if (this instanceof Graphic_ATTR_Multi_Elem) { + this.mvRelationname = this.columnName + "_mvt"; + this.mvRelationnamePraefix = this.mvRelationname.charAt(0) + "_"; + this.createColumn = false; + } + this.columnPostfix = ""; + this.datatype = "varchar(100)"; + this.isAutoincrement = false; + + this.isKey = this instanceof Graphic_ATTR_Key_Elem || this instanceof Graphic_ATTR_Weak_Key_Elem; + if (this.isKey) this.isNullable = false; + this.isUnique = false; + this.dataGenerationType = "No"; + } + + + + + + + protected void changeName(String name) { + super.changeName(name); + + + this.createColumn = true; + this.columnName = T3.replaceSpecialChars(name.toLowerCase()); + if (this instanceof Graphic_ATTR_Multi_Elem) { + this.createColumn = false; + this.mvRelationname = this.columnName + "_mvt"; + this.mvRelationnamePraefix = this.mvRelationname.charAt(0) + "_"; + } + this.columnPostfix = ""; + this.datatype = "varchar(100)"; + this.isAutoincrement = false; + this.isKey = this instanceof Graphic_ATTR_Key_Elem || this instanceof Graphic_ATTR_Weak_Key_Elem; + if (this.isKey) this.isNullable = false; + this.isUnique = false; + } + + + + + + + + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 2.0D, this.yPos - this.textHeight / 2.0D - 2.0D, this.textWidth + 4.0D, this.textHeight + 4.0D); + } + + + + public char sdfsdfdsfdf() { + return 'a'; + } + + + + protected Color sefdsfdsf45() { + return C2.ERMATTRColor; + } + + + + protected Color getColorSelected() { + return C2.ERMSelectedColor; + } + + + + + + + public boolean getCreateColumn() { + return this.createColumn; + } + + + + + + + public void setCreateColumn(boolean createColumn) { + this.createColumn = createColumn; + } + + + + + + + + public String getColumnPostfix() { + return this.columnPostfix; + } + + + + + + + public void setColumnPostfix(String columnPraefix) { + this.columnPostfix = columnPraefix; + } + + + + + + + + public String getColumnName() { + return this.columnName; + } + + + + + + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + + + + + + + public String getDatatype() { + return this.datatype; + } + + + + + + + public void setDatatype(String datatype) { + this.datatype = datatype; + } + + + + + + + + public boolean isKey() { + return this.isKey; + } + + + + + + + public void setIsKey(boolean isKey) { + this.isKey = isKey; + } + + + + + + + + public boolean isAutoincrement() { + return this.isAutoincrement; + } + + + + + + + public void setIsAutoincrement(boolean isAutoincrement) { + this.isAutoincrement = isAutoincrement; + } + + + + + + + + + public long getAutoincrementStartAt() { + return this.autoincrementStartAt; + } + + + + + + + public void setAutoincrementStartAt(long autoincrementStartAt) { + this.autoincrementStartAt = autoincrementStartAt; + } + + + + + + + public boolean isUnique() { + return this.isUnique; + } + + + + + + + public void setIsUnique(boolean isUnique) { + this.isUnique = isUnique; + } + + + + + + + + public boolean isNullable() { + return this.isNullable; + } + + + + + + + public void setIsNullable(boolean isNullable) { + this.isNullable = isNullable; + } + + + + + + + + public String getMVRelationName() { + return this.mvRelationname; + } + + + + + + + public void setMVRelationName(String mvRelationname) { + this.mvRelationname = mvRelationname; + } + + + + + + + public String getMVRelationNamePraefix() { + return this.mvRelationnamePraefix; + } + + + + + + + public void setMVRelationNamePraefix(String mvRelationnamePraefix) { + this.mvRelationnamePraefix = mvRelationnamePraefix; + } + + + + + public String sdfsdfsd32234243() { + return this.name + "@" + this.datatype; + } + + + + public String getDataGenerationType() { + return this.dataGenerationType; + } + + + + public void setDataGenerationType(String dataGenerationType) { + this.dataGenerationType = dataGenerationType; + } + + + + public String getPar1() { + return this.par1; + } + + + + public void setPar1(String par1) { + this.par1 = par1; + } + + + + public String getPar2() { + return this.par2; + } + + + + public void setPar2(String par2) { + this.par2 = par2; + } + + + + + + + public String getPar1_label() { + return this.par1_label; + } + + + + + + + public void setPar1_label(String par1_label) { + this.par1_label = par1_label; + } + + + + + + + public String getPar2_label() { + return this.par2_label; + } + + + + + + + public void setPar2_label(String par2_label) { + this.par2_label = par2_label; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ATTR_Key_Elem.java b/at/fos/ermodel/gui/Graphic_ATTR_Key_Elem.java new file mode 100644 index 0000000..7fc39e6 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ATTR_Key_Elem.java @@ -0,0 +1,54 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ATTR_Key_Elem + extends Graphic_ATTR_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_ATTR_Key_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, x, y, name, elementID); + } + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + this.gc.setStroke(c); + this.gc.strokeOval(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + + this.gc.setFill(C2.ERMTextColor); + + this.gc.setStroke(Color.BLACK); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + this.gc.strokeLine(this.xPos - this.textWidth / 2.0D + 10.0D, + this.yPos + this.textHeight / 2.0D - 13.0D, this.xPos + this.textWidth / 2.0D - 10.0D, this.yPos + this.textHeight / 2.0D - 13.0D); + this.gc.closePath(); + } + + + + + + + + + + public String safsafdsa456456456() { + return "A-K"; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ATTR_Multi_Elem.java b/at/fos/ermodel/gui/Graphic_ATTR_Multi_Elem.java new file mode 100644 index 0000000..73ecb03 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ATTR_Multi_Elem.java @@ -0,0 +1,57 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ATTR_Multi_Elem + extends Graphic_ATTR_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + private final boolean derived; + + public Graphic_ATTR_Multi_Elem(GraphicsContext gc, double x, double y, String name, boolean derived, long elementID) { + super(gc, x, y, name, elementID); + this.derived = derived; + } + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + + this.gc.setStroke(c); + if (this.derived) { + this.gc.setLineWidth(1.0D); + this.gc.setLineDashes(3.0D); + } + this.gc.strokeOval(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + this.gc.strokeOval(this.xPos - this.textWidth / 2.0D + 3.0D, this.yPos - this.textHeight / 2.0D + 3.0D, this.textWidth - 6.0D, this.textHeight - 6.0D); + this.gc.setLineDashes(); + + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + + this.gc.closePath(); + } + + + + + + + public String safsafdsa456456456() { + return "A-M"; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ATTR_One_Elem.java b/at/fos/ermodel/gui/Graphic_ATTR_One_Elem.java new file mode 100644 index 0000000..19d22f7 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ATTR_One_Elem.java @@ -0,0 +1,55 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ATTR_One_Elem + extends Graphic_ATTR_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + private final boolean derived; + + public Graphic_ATTR_One_Elem(GraphicsContext gc, double x, double y, String name, boolean derived, long elementID) { + super(gc, x, y, name, elementID); + this.derived = derived; + } + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) { + return; + } + this.gc.beginPath(); + this.gc.setStroke(c); + if (this.derived) { + this.gc.setLineWidth(1.0D); + this.gc.setLineDashes(3.0D); + } + this.gc.strokeOval(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + this.gc.setLineDashes(); + + + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + this.gc.closePath(); + } + + + + + + public String safsafdsa456456456() { + return "A"; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ATTR_Weak_Key_Elem.java b/at/fos/ermodel/gui/Graphic_ATTR_Weak_Key_Elem.java new file mode 100644 index 0000000..6b468f0 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ATTR_Weak_Key_Elem.java @@ -0,0 +1,55 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ATTR_Weak_Key_Elem + extends Graphic_ATTR_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_ATTR_Weak_Key_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, x, y, name, elementID); + } + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + + this.gc.setStroke(c); + this.gc.strokeOval(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + + this.gc.setFill(C2.ERMTextColor); + + this.gc.setStroke(Color.BLACK); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + this.gc.setLineWidth(1.0D); + this.gc.setLineDashes(3.0D); + this.gc.strokeLine(this.xPos - this.textWidth / 2.0D + 10.0D, + this.yPos + this.textHeight / 2.0D - 13.0D, this.xPos + this.textWidth / 2.0D - 10.0D, this.yPos + this.textHeight / 2.0D - 13.0D); + this.gc.setLineDashes(); + this.gc.closePath(); + } + + + + + + + public String safsafdsa456456456() { + return "A-WK"; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ES_Assoc_Elem.java b/at/fos/ermodel/gui/Graphic_ES_Assoc_Elem.java new file mode 100644 index 0000000..fc3a314 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ES_Assoc_Elem.java @@ -0,0 +1,85 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ES_Assoc_Elem + extends Graphic_ES_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_ES_Assoc_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, name, elementID); + + this.xPos = x; + this.yPos = y; + } + + + + + + + + + + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + + this.gc.setStroke(c); + this.gc.strokeRect(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + this.gc.strokePolygon(new double[] { this.xPos - this.textWidth / 2.0D, + this.xPos, + this.xPos + this.textWidth / 2.0D, + this.xPos + }, new double[] { this.yPos, + this.yPos - this.textHeight / 2.0D, + this.yPos, + this.yPos + this.textHeight / 2.0D + }, 4); + + + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + + this.gc.closePath(); + } + + + + + + + public String safsafdsa456456456() { + return "ES-A"; + } + + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 1.0D, this.yPos - this.textHeight / 2.0D - 1.0D, this.textWidth + 2.0D, this.textHeight + 2.0D); + } + + + + + public char sdfsdfdsfdf() { + return '@'; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ES_Elem.java b/at/fos/ermodel/gui/Graphic_ES_Elem.java new file mode 100644 index 0000000..43cb318 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ES_Elem.java @@ -0,0 +1,66 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ES_Elem + extends Graphic_ES_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_ES_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, name, elementID); + this.xPos = x; + this.yPos = y; + } + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + + this.gc.setStroke(c); + this.gc.strokeRect(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + + + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + + this.gc.closePath(); + } + + + + + + + + public String safsafdsa456456456() { + return "ES"; + } + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 1.0D, this.yPos - this.textHeight / 2.0D - 1.0D, this.textWidth + 2.0D, this.textHeight + 2.0D); + } + + + + + public char sdfsdfdsfdf() { + return 'e'; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ES_Main_Elem.java b/at/fos/ermodel/gui/Graphic_ES_Main_Elem.java new file mode 100644 index 0000000..ab8fcbf --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ES_Main_Elem.java @@ -0,0 +1,119 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; + +import java.io.Serial; + + +public abstract class Graphic_ES_Main_Elem + extends Graphic_Figure_Elem + implements U3 +{ + protected boolean createRelation; + protected String relationPraefix; + protected String relationName; + protected boolean createInserts; + protected long numberRowsToInsert = 1L; + + + + + + + @Serial + private static final long serialVersionUID = 1L; + + + + + + + + public Graphic_ES_Main_Elem(GraphicsContext gc, String name, long elementID) { + super(gc, name, elementID); + this.createRelation = true; + this.relationName = this.name.toLowerCase(); + this.relationName = T3.replaceSpecialChars(this.relationName); + this.relationPraefix = this.relationName.charAt(0) + "_"; + this.createInserts = true; + } + + + + + + + protected void changeName(String name) { + super.changeName(name); + + + this.createRelation = true; + this.relationName = T3.replaceSpecialChars(name.toLowerCase()); + this.relationPraefix = this.relationName.charAt(0) + "_"; + } + + + + + public boolean getCreateRelation() { + return this.createRelation; + } + + + public void setCreateRelation(boolean createRelation) { + this.createRelation = createRelation; + } + + + + public String getRelationPraefix() { + return this.relationPraefix; + } + + + public void setRelationPraefix(String relationPraefix) { + this.relationPraefix = relationPraefix; + } + + + + public String getRelationName() { + return this.relationName; + } + + + public void setRelationName(String relationName) { + this.relationName = relationName; + } + + + public boolean getCreateInserts() { + return this.createInserts; + } + + + + public void setCreateInserts(boolean createInserts) { + this.createInserts = createInserts; + } + + + + public long getNumberRowsToInsert() { + return this.numberRowsToInsert; + } + + + public void setNumberRowsToInsert(long numberRowsToInsert) { + this.numberRowsToInsert = numberRowsToInsert; + } + + + + + public String sdfsdfsd32234243() { + return super.sdfsdfsd32234243(); + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_ES_Weak_Elem.java b/at/fos/ermodel/gui/Graphic_ES_Weak_Elem.java new file mode 100644 index 0000000..dff0235 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_ES_Weak_Elem.java @@ -0,0 +1,72 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_ES_Weak_Elem + extends Graphic_ES_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_ES_Weak_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, name, elementID); + + this.xPos = x; + this.yPos = y; + } + + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + this.gc.setStroke(c); + this.gc.strokeRect(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + this.gc.strokeRect(this.xPos - this.textWidth / 2.0D + 3.0D, this.yPos - this.textHeight / 2.0D + 3.0D, this.textWidth - 6.0D, this.textHeight - 6.0D); + + + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); + this.gc.closePath(); + } + + + + + + + public String safsafdsa456456456() { + return "ES-W"; + } + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 1.0D, this.yPos - this.textHeight / 2.0D - 1.0D, this.textWidth + 2.0D, this.textHeight + 2.0D); + } + + + + + public char sdfsdfdsfdf() { + return 'e'; + } + + + + protected Color sefdsfdsf45() { + return C2.ERMESColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_Figure_Elem.java b/at/fos/ermodel/gui/Graphic_Figure_Elem.java new file mode 100644 index 0000000..0b08a23 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_Figure_Elem.java @@ -0,0 +1,207 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; + +import java.io.Serial; + + +public abstract class Graphic_Figure_Elem + extends Graphic_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + protected double textWidth; + protected double textHeight; + + public abstract String safsafdsa456456456(); + + public double dsfsfsd456457657() { + return this.textWidth; } public double getHeight() { + return this.textHeight; + } protected void dockablePointsAtElem() { + drawDockablePoints(getColorDockable()); + } + + + + + public Graphic_Figure_Elem(GraphicsContext gc, String name, long elementID) { + super(gc, elementID); + this.name = name; + if (name == null) this.name = safsafdsa456456456(); + calculateTextWidthHeight(); + } + + + + + + + + + protected void changeName(String name) { + this.name = name; + if (name == null) this.name = safsafdsa456456456(); + + dsfsdfsfd(); + + calculateTextWidthHeight(); + safdsadasds32432456456(); + } + + + + + + public boolean dsfsfds45645456(double mouseX, double mouseY) { + return mouseX >= this.xPos - dsfsfsd456457657() / 2.0D && mouseX <= this.xPos + dsfsfsd456457657() / 2.0D && + mouseY >= this.yPos - getHeight() / 2.0D && mouseY <= this.yPos + getHeight() / 2.0D; + } + + + + + + public void calculateTextWidthHeight() { + this.textWidth = C2.computeTextWidth(this.name, 2000.0D); + this.textWidth += 20.0D; + this.gc.setFont(C2.ERMFont); + Font f = this.gc.getFont(); + this.textHeight = f.getSize(); + this.textHeight += 30.0D; + } + + + + + + + public String toString() { + return "Graphic_Figure_Elem [textWidth=" + this.textWidth + ", textHeight=" + this.textHeight + ", toString()=" + + super.toString() + "]"; + } + + + + + + + protected void drawDockablePoints(Color c) { + if (!this.isConnectable) + return; + this.gc.setFill(c); + + + this.gc.fillOval(this.xPos - this.textWidth / 2.0D, this.yPos - 3.0D, 6.0D, 6.0D); + + + this.gc.fillOval(this.xPos - 3.0D, this.yPos - this.textHeight / 2.0D, 6.0D, 6.0D); + + + this.gc.fillOval(this.xPos + this.textWidth / 2.0D - 6.0D, this.yPos - 3.0D, 6.0D, 6.0D); + + + this.gc.fillOval(this.xPos - 3.0D, this.yPos + this.textHeight / 2.0D - 6.0D, 6.0D, 6.0D); + } + + + protected void drawDockablePoint(Color c, int point) { + this.gc.setFill(c); + switch (point) { + case 1 -> this.gc.fillOval(this.xPos - this.textWidth / 2.0D, this.yPos - 3.0D, 6.0D, 6.0D); + case 2 -> this.gc.fillOval(this.xPos - 3.0D, this.yPos - this.textHeight / 2.0D, 6.0D, 6.0D); + case 3 -> this.gc.fillOval(this.xPos + this.textWidth / 2.0D - 6.0D, this.yPos - 3.0D, 6.0D, 6.0D); + case 4 -> this.gc.fillOval(this.xPos - 3.0D, this.yPos + this.textHeight / 2.0D - 6.0D, 6.0D, 6.0D); + } + } + + + + + + + + + + + public double[] getDockablePoint(double mouseX, double mouseY) { + double[] selected = null; + + + + + + + if (mouseX >= this.xPos - this.textWidth / 2.0D - 5.0D && mouseX <= this.xPos - this.textWidth / 2.0D + 5.0D && mouseY >= this.yPos - 5.0D && mouseY <= this.yPos + 5.0D) { + selected = new double[3]; + selected[0] = this.xPos - this.textWidth / 2.0D; + selected[1] = this.yPos; + selected[2] = 1.0D; + } + + if (mouseX >= this.xPos - 5.0D && mouseX <= this.xPos + 5.0D && mouseY >= this.yPos - this.textHeight / 2.0D - 5.0D && mouseY <= this.yPos - this.textHeight / 2.0D + 5.0D) { + selected = new double[3]; + selected[0] = this.xPos; + selected[1] = this.yPos - this.textHeight / 2.0D; + selected[2] = 2.0D; + } + + if (mouseX >= this.xPos + this.textWidth / 2.0D - 5.0D && mouseX <= this.xPos + this.textWidth / 2.0D + 5.0D && mouseY >= this.yPos - 5.0D && mouseY <= this.yPos + 5.0D) { + selected = new double[3]; + selected[0] = this.xPos + this.textWidth / 2.0D; + selected[1] = this.yPos; + selected[2] = 3.0D; + } + + if (mouseX >= this.xPos - 5.0D && mouseX <= this.xPos + 5.0D && mouseY >= this.yPos + this.textHeight / 2.0D - 5.0D && mouseY <= this.yPos + this.textHeight / 2.0D + 5.0D) { + selected = new double[3]; + selected[0] = this.xPos; + selected[1] = this.yPos + this.textHeight / 2.0D; + selected[2] = 4.0D; + } + return selected; + } + + + + + + + public double[] getXYForGivenPoint(byte dockedAt) { + double[] xyAtPoint = new double[2]; + switch (dockedAt) { + case 0 -> { + xyAtPoint[0] = this.xPos; + xyAtPoint[1] = this.yPos; + } + case 1 -> { + xyAtPoint[0] = this.xPos - this.textWidth / 2.0D; + xyAtPoint[1] = this.yPos; + } + case 2 -> { + xyAtPoint[0] = this.xPos; + xyAtPoint[1] = this.yPos - this.textHeight / 2.0D; + } + case 3 -> { + xyAtPoint[0] = this.xPos + this.textWidth / 2.0D; + xyAtPoint[1] = this.yPos; + } + case 4 -> { + xyAtPoint[0] = this.xPos; + xyAtPoint[1] = this.yPos + this.textHeight / 2.0D; + } + } + + return xyAtPoint; + } + + + + protected Color sefdsfdsf45() { + return C2.ERMESColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_Attr_Attr_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_Attr_Attr_Elem.java new file mode 100644 index 0000000..086ec80 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_Attr_Attr_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_Attr_Attr_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_Attr_Attr_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMLINEColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_Attr_ES_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_Attr_ES_Elem.java new file mode 100644 index 0000000..253500f --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_Attr_ES_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_Attr_ES_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_Attr_ES_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMLINEColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_Attr_RS_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_Attr_RS_Elem.java new file mode 100644 index 0000000..f176188 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_Attr_RS_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_Attr_RS_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_Attr_RS_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMLINEColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_Elem.java new file mode 100644 index 0000000..8f2d5be --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_Elem.java @@ -0,0 +1,428 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; +import javafx.scene.transform.Affine; +import javafx.scene.transform.Transform; +import javafx.scene.transform.Translate; + +import java.io.Serial; + +public abstract class Graphic_LINE_Elem + extends Graphic_Main_Elem +{ + @Serial +private static final long serialVersionUID = 1L; + + private double xEnd; + + private double yEnd; + protected String minimum = "0"; + protected String maximum = "n"; + + + + + private Graphic_Figure_Elem connectedWithStart; + + + + + private final byte lineConnectedWithPointAtStart; + + + + + private Graphic_Figure_Elem connectedWithEnd; + + + + private final byte lineConnectedWithPointAtEnd; + + + + + public Graphic_LINE_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, elementID); + + this.xPos = x; + this.yPos = y; + this.lineConnectedWithPointAtStart = lineConnectedWithPointAtStart; + this.connectedWithStart = elemStart; + this.xEnd = xEnd; + this.yEnd = yEnd; + this.lineConnectedWithPointAtEnd = lineConnectedWithPointAtEnd; + this.connectedWithEnd = elemEnd; + this.name = ""; + + if (this instanceof Graphic_LINE_RSID_ESWEAK_Elem) { + this.minimum = "1"; + this.maximum = "1"; + } + } + + + + + + + + protected void changeMinMax(String minimum, String maximum) { + this.minimum = minimum; + this.maximum = maximum; + if (minimum == null) this.minimum = getDefaultMinimum(); + if (maximum == null) this.minimum = getDefaultMaximum(); + dsfsdfsfd(); + safdsadasds32432456456(); + } + + + + + + + + + + private void drawArrow(Color c, double x1, double y1, double x2, double y2) { + this.gc.setStroke(c); + + double dx = x2 - x1, dy = y2 - y1; + double angle = Math.atan2(dy, dx); + double len = Math.sqrt(dx * dx + dy * dy); + + + Affine oldTransform = this.gc.getTransform(); + + Translate translate = Transform.translate(x1, y1); + Transform transform = translate.createConcatenation(Transform.rotate(Math.toDegrees(angle), 0.0D, 0.0D)); + this.gc.setTransform(new Affine(transform)); + + + this.gc.setFill(C2.ERMBackgroundColor); + + + + + + this.gc.strokePolygon(new double[] { len, len - 8.0D, len - 8.0D + }, new double[] { 0.0D, -8.0D, 8.0D + }, 3); + + + this.gc.setTransform(oldTransform); + } + + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + if (this.name == null) this.name = ""; + + this.gc.beginPath(); + this.gc.setStroke(c); + this.gc.strokeLine(this.xPos, this.yPos, this.xEnd, this.yEnd); + + if (this instanceof Graphic_LINE_RSISAG_ES_Elem) { + + if (this.connectedWithStart instanceof Graphic_ES_Elem) { + drawArrow(c, this.xEnd, this.yEnd, this.xPos, this.yPos); + } + if (this.connectedWithEnd instanceof Graphic_ES_Elem) { + drawArrow(c, this.xPos, this.yPos, this.xEnd, this.yEnd); + } + return; + } + if (this instanceof Graphic_LINE_RSISAS_ES_Elem) + return; if (this instanceof Graphic_LINE_Attr_Attr_Elem) + return; if (this instanceof Graphic_LINE_Attr_ES_Elem) + return; if (this instanceof Graphic_LINE_Attr_RS_Elem) { + return; + } + double helpXStart = this.xPos; + double helpXEnd = this.xEnd; + double helpYStart = this.yPos; + double helpYEnd = this.yEnd; + this.gc.setFill(C2.ERMTextColor); + if (this.xEnd < this.xPos) { helpXStart = this.xEnd; helpXEnd = this.xPos; } + if (this.yEnd < this.yPos) { helpYStart = this.yEnd; helpYEnd = this.yPos; } + this.gc.fillText("(" + this.minimum + "," + this.maximum + ")", helpXStart + (helpXEnd - helpXStart) / 2.0D, helpYStart + (helpYEnd - helpYStart) / 2.0D - 5.0D); + this.gc.closePath(); + } + + + + + + public void dsfsdfsfd() { + this.gc.beginPath(); + this.gc.setStroke(C2.ERMBackgroundColor); + this.gc.setLineWidth(3.0D); + this.gc.strokeLine(this.xPos, this.yPos, this.xEnd, this.yEnd); + this.gc.setLineWidth(1.0D); + + + if (this instanceof Graphic_LINE_RSISAG_ES_Elem) { + + + double d1 = 0.0D, d2 = 0.0D, helpWidth = 0.0D, helpHeight = 0.0D; + Graphic_ES_Elem helpElem = null; + byte helpConnectedWithPoint = 0; + if (this.connectedWithStart instanceof Graphic_ES_Elem) { + helpElem = (Graphic_ES_Elem)this.connectedWithStart; + helpConnectedWithPoint = this.lineConnectedWithPointAtStart; + } + if (this.connectedWithEnd instanceof Graphic_ES_Elem) { + helpElem = (Graphic_ES_Elem)this.connectedWithEnd; + helpConnectedWithPoint = this.lineConnectedWithPointAtEnd; + } + + assert helpElem != null; + double[] dockedPoints = helpElem.getXYForGivenPoint(helpConnectedWithPoint); + switch (helpConnectedWithPoint) { + case 1, 2 -> { + d1 = dockedPoints[0] - 16.0D; + d2 = dockedPoints[1] - 16.0D; + helpWidth = 29.0D; + helpHeight = 29.0D; + } + case 3 -> { + d1 = dockedPoints[0]; + d2 = dockedPoints[1] - 8.0D - 5.0D; + helpWidth = 28.0D; + helpHeight = 28.0D; + } + case 4 -> { + d1 = dockedPoints[0] - 8.0D - 5.0D; + d2 = dockedPoints[1] + 1.0D; + helpWidth = 28.0D; + helpHeight = 28.0D; + } + } + + this.gc.clearRect(d1, d2, helpWidth, helpHeight); + return; + } + if (this instanceof Graphic_LINE_RSISAS_ES_Elem) + return; if (this instanceof Graphic_LINE_Attr_Attr_Elem) + return; if (this instanceof Graphic_LINE_Attr_ES_Elem) + return; if (this instanceof Graphic_LINE_Attr_RS_Elem) { + return; + } + + double helpXStart = this.xPos; + double helpXEnd = this.xEnd; + double helpYStart = this.yPos; + double helpYEnd = this.yEnd; + if (this.xEnd < this.xPos) { helpXStart = this.xEnd; helpXEnd = this.xPos; } + if (this.yEnd < this.yPos) { helpYStart = this.yEnd; helpYEnd = this.yPos; } + this.gc.clearRect(helpXStart + (helpXEnd - helpXStart) / 2.0D - 6.0D, + helpYStart + (helpYEnd - helpYStart) / 2.0D - 5.0D - 10.0D, + C2.computeTextWidth("(" + this.minimum + "," + this.maximum + ")", 2000.0D) + 12.0D, + C2.computeTextHeight() + 12.0D); + this.gc.closePath(); + } + + + + + public double dsfsfsd456457657() { + return this.xEnd; + } + + + + public double getHeight() { + return this.yEnd; + } + + + + + + + + + + + + + + public boolean dsfsfds45645456(double mouseX, double mouseY) { + Graphic_Figure_Elem aHelp = getConnectedWithStart(); + double[] dockablePointsAHelp = aHelp.getXYForGivenPoint(getLineConnectedWithPointAtStart()); + Graphic_Figure_Elem bHelp = getConnectedWithEnd(); + double[] dockablePointsBHelp = bHelp.getXYForGivenPoint(getLineConnectedWithPointAtEnd()); + + + double distStartToMouse = distP1_P2(dockablePointsAHelp[0], dockablePointsAHelp[1], mouseX, mouseY); + double distMouseToEnd = distP1_P2(mouseX, mouseY, dockablePointsBHelp[0], dockablePointsBHelp[1]); + double distStartToEnd = distP1_P2(dockablePointsAHelp[0], dockablePointsAHelp[1], dockablePointsBHelp[0], dockablePointsBHelp[1]); + + + return Math.abs(distStartToMouse + distMouseToEnd - distStartToEnd) <= 0.3D; + } + + + + + public Graphic_Figure_Elem getConnectedWithStart() { + return this.connectedWithStart; + } + + + + + public void setConnectedWithStart(Graphic_Figure_Elem connectedWithStart) { + this.connectedWithStart = connectedWithStart; + } + + + + + public Graphic_Figure_Elem getConnectedWithEnd() { + return this.connectedWithEnd; + } + + + + + public void setConnectedWithEnd(Graphic_Figure_Elem connectedWithEnd) { + this.connectedWithEnd = connectedWithEnd; + } + + + + + public double getxEnd() { + return this.xEnd; + } + + + + + public void setxEnd(double xEnd) { + this.xEnd = xEnd; + } + + + + + public double getyEnd() { + return this.yEnd; + } + + + + + public void setyEnd(double yEnd) { + this.yEnd = yEnd; + } + + + + public char sdfsdfdsfdf() { + return 'l'; + } + + + + + + + + public double distP1_P2(double xP1, double yP1, double xP2, double yP2) { + double dist; + dist = Math.sqrt((xP1 - xP2) * (xP1 - xP2) + (yP1 - yP2) * (yP1 - yP2)); + return dist; + } + + + + + public String getMinimum() { + return this.minimum; + } + + + + + public void setMinimum(String minimum) { + this.minimum = minimum; + } + + + + + public String getMaximum() { + return this.maximum; + } + + + + + public void setMaximum(String maximum) { + this.maximum = maximum; + } + + private String getDefaultMinimum() { + return "0"; + } + + private String getDefaultMaximum() { + return "n"; + } + + + + + + public String toString() { + return "Graphic_LINE_Elem [xEnd=" + this.xEnd + ", yEnd=" + this.yEnd + ", minimum=" + this.minimum + ", maximum=" + this.maximum + + ", connectedWithStart=" + this.connectedWithStart + ", connectedWithEnd=" + this.connectedWithEnd + + ", toString()=" + super.toString() + "]"; + } + + + + + public byte getLineConnectedWithPointAtStart() { + return this.lineConnectedWithPointAtStart; + } + + + public byte getLineConnectedWithPointAtEnd() { + return this.lineConnectedWithPointAtEnd; + } + + + public String sdfsdfsd32234243() { + if (this instanceof Graphic_LINE_RSISAG_ES_Elem) { + return this.connectedWithStart.sdfsdfsd32234243() + "[G]" + this.connectedWithEnd.sdfsdfsd32234243(); + } + if (this instanceof Graphic_LINE_RSISAS_ES_Elem) { + return this.connectedWithStart.sdfsdfsd32234243() + "[Sp]" + this.connectedWithEnd.sdfsdfsd32234243(); + } + if (this instanceof Graphic_LINE_Attr_ES_Elem || + this instanceof Graphic_LINE_Attr_Attr_Elem || this instanceof Graphic_LINE_Attr_RS_Elem) { + String usedStartName = this.connectedWithStart.sdfsdfsd32234243(); + if (this.connectedWithStart instanceof Graphic_ATTR_Elem) { + usedStartName = usedStartName.substring(0, usedStartName.indexOf('@')); + } + String usedEndName = this.connectedWithEnd.sdfsdfsd32234243(); + if (this.connectedWithEnd instanceof Graphic_ATTR_Elem) { + usedEndName = usedEndName.substring(0, usedEndName.indexOf('@')); + } + return usedStartName + "[-]" + usedEndName; + } + return this.connectedWithStart.sdfsdfsd32234243() + "(" + this.minimum + "," + this.maximum + ")" + this.connectedWithEnd.sdfsdfsd32234243(); + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_RSID_ESWEAK_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_RSID_ESWEAK_Elem.java new file mode 100644 index 0000000..fb8b5a9 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_RSID_ESWEAK_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_RSID_ESWEAK_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_RSID_ESWEAK_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMRSConnColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_RSID_ES_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_RSID_ES_Elem.java new file mode 100644 index 0000000..392dbb2 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_RSID_ES_Elem.java @@ -0,0 +1,53 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + +public class Graphic_LINE_RSID_ES_Elem + extends Graphic_LINE_Elem +{ + @Serial +private static final long serialVersionUID = 1L; + + public Graphic_LINE_RSID_ES_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMRSConnColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_RSISAG_ES_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_RSISAG_ES_Elem.java new file mode 100644 index 0000000..77adbb0 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_RSISAG_ES_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_RSISAG_ES_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_RSISAG_ES_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMISAConnGENERAL; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_RSISAS_ES_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_RSISAS_ES_Elem.java new file mode 100644 index 0000000..34b02c4 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_RSISAS_ES_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_RSISAS_ES_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_RSISAS_ES_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMISAConnSPEC; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_LINE_RS_ES_Elem.java b/at/fos/ermodel/gui/Graphic_LINE_RS_ES_Elem.java new file mode 100644 index 0000000..e5d9a0e --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_LINE_RS_ES_Elem.java @@ -0,0 +1,27 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_LINE_RS_ES_Elem + extends Graphic_LINE_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_LINE_RS_ES_Elem(GraphicsContext gc, double x, double y, double xEnd, double yEnd, byte lineConnectedWithPointAtStart, byte lineConnectedWithPointAtEnd, Graphic_Figure_Elem elemStart, Graphic_Figure_Elem elemEnd, long elementID) { + super(gc, x, y, xEnd, yEnd, lineConnectedWithPointAtStart, lineConnectedWithPointAtEnd, elemStart, elemEnd, elementID); + } + + + + + protected Color sefdsfdsf45() { + return C2.ERMRSConnColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_Main_Elem.java b/at/fos/ermodel/gui/Graphic_Main_Elem.java new file mode 100644 index 0000000..adee06d --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_Main_Elem.java @@ -0,0 +1,214 @@ +package at.fos.ermodel.gui; + +import java.io.Serial; +import java.io.Serializable; +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +public abstract class Graphic_Main_Elem + implements Serializable, Comparable +{ + @Serial + private static final long serialVersionUID = 1L; + protected long graphicMainElemID; + protected double xPos; + protected double yPos; + protected String name; + protected transient GraphicsContext gc; + protected transient boolean isVisible; + protected transient boolean isConnectable; + transient U4 undoRedoAction; + + public Graphic_Main_Elem(GraphicsContext gc, long elementID) { + this.graphicMainElemID = elementID; + this.gc = gc; + this.isVisible = true; + } + + + + + public GraphicsContext getGc() { + return this.gc; + } + + + + public void setGc(GraphicsContext gc) { + this.gc = gc; + } + + + + + public void setxPos(double xPos) { + this.xPos = xPos; + } + + + + public void setyPos(double yPos) { + this.yPos = yPos; + } + + public void safdsadasds32432456456() { + dsfdsfds6787686(sefdsfdsf45()); } + + + protected Color getColorSelected() { + return C2.ERMSelectedColor; + } + + + + + + protected Color getColorDockable() { + return C2.ERMDockablePointColor; + } + + + + + + public void dfsdfssdf456456() { + dsfsdfsfd(); dsfdsfds6787686(sefdsfdsf45()); + } + + + + + + + + + + public double getxPos() { + return this.xPos; + } + + + + public double getyPos() { + return this.yPos; + } + + + + public void dgfdsfdssfd43534456() { + selectElem(); + } + + + + + + + public void sdffdsfsdf4354357656(double newX, double newY) { + dsfsdfsfd(); + this.xPos = newX; + this.yPos = newY; + dsfdsfds6787686(getColorSelected()); + } + + + + + public void selectElem() { + dsfdsfds6787686(getColorSelected()); + } + + + + + + + public int hashCode() { + int result = 1; + result = 31 * result + (int)(this.graphicMainElemID ^ this.graphicMainElemID >>> 32L); + return result; + } + + + + + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Graphic_Main_Elem other = (Graphic_Main_Elem)obj; + return this.graphicMainElemID == other.graphicMainElemID; + } + + + + + + + + + + + + public String toString() { + return "Graphic_Main_Elem [graphicMainElemID=" + this.graphicMainElemID + ", xPos=" + this.xPos + ", yPos=" + this.yPos + + ", name=" + this.name + "]"; + } + + + + public long sdfsdfsdfd() { + return this.graphicMainElemID; + } + + + + public void dsdasadsasd32423432(long graphicMainElemID) { + this.graphicMainElemID = graphicMainElemID; + } + + + + public String sdfsdfsd32234243() { + return this.name; + } + + + + public U4 adsadadsa4354353() { + return this.undoRedoAction; + } + + + + public void sfdsfsfsddf123234435(U4 undoRedoAction) { + this.undoRedoAction = undoRedoAction; + } + + + + + + public int compareTo(Graphic_Main_Elem arg0) { + return Long.compare(this.graphicMainElemID, arg0.graphicMainElemID); + } + + public abstract double dsfsfsd456457657(); + + public abstract double getHeight(); + + protected abstract Color sefdsfdsf45(); + + public abstract void dsfsdfsfd(); + + protected abstract void dsfdsfds6787686(Color paramColor); + + public abstract boolean dsfsfds45645456(double paramDouble1, double paramDouble2); + + public abstract char sdfsdfdsfdf(); +} + + diff --git a/at/fos/ermodel/gui/Graphic_RS_Elem.java b/at/fos/ermodel/gui/Graphic_RS_Elem.java new file mode 100644 index 0000000..d57aafb --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_RS_Elem.java @@ -0,0 +1,87 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + +public class Graphic_RS_Elem + extends Graphic_RS_Main_Elem +{ + @Serial +private static final long serialVersionUID = 1L; + + public Graphic_RS_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, name, elementID); + + this.xPos = x; + this.yPos = y; + this.createRelation = true; + } + + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + this.gc.setStroke(c); + this.gc.strokePolygon(new double[] { this.xPos - this.textWidth / 2.0D, + this.xPos, + this.xPos + this.textWidth / 2.0D, + this.xPos + }, new double[] { this.yPos, + this.yPos - this.textHeight / 2.0D, + this.yPos, + this.yPos + this.textHeight / 2.0D + }, 4); + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 18.0D); + this.gc.closePath(); + } + + + + + + public String safsafdsa456456456() { + return "RS"; + } + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 2.0D, this.yPos - this.textHeight / 2.0D - 2.0D, this.textWidth + 4.0D, this.textHeight + 4.0D); + } + + + + public double dsfsfsd456457657() { + return this.textWidth; + } + + + + public double getHeight() { + return this.textHeight; + } + + + + public char sdfsdfdsfdf() { + return 'r'; + } + + + + protected Color sefdsfdsf45() { + return C2.ERMRSColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_RS_ISA_Elem.java b/at/fos/ermodel/gui/Graphic_RS_ISA_Elem.java new file mode 100644 index 0000000..5094e3f --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_RS_ISA_Elem.java @@ -0,0 +1,158 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_RS_ISA_Elem + extends Graphic_RS_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + private String partial_or_total; + private String disjunct_or_notdisjunct; + + public Graphic_RS_ISA_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, null, elementID); + + this.xPos = x; + this.yPos = y; + this.createRelation = false; + this.createInserts = true; + this.numberRowsToInsert = 1L; + } + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + this.gc.setStroke(c); + this.gc.strokePolygon(new double[] { this.xPos - this.textWidth / 2.0D, + this.xPos, + this.xPos + this.textWidth / 2.0D, + this.xPos + }, new double[] { this.yPos, + this.yPos - this.textHeight / 2.0D, + this.yPos, + this.yPos + this.textHeight / 2.0D + }, 4); + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 17.0D); + + + this.gc.fillText("(" + this.partial_or_total + "," + this.disjunct_or_notdisjunct + ")", this.xPos + this.textWidth / 2.0D + 5.0D, this.yPos - 5.0D); + + this.gc.closePath(); + } + + + + + + public String safsafdsa456456456() { + return "ISA"; + } + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 1.0D, this.yPos - this.textHeight / 2.0D - 1.0D, this.textWidth + 2.0D, this.textHeight + 2.0D); + + this.gc.clearRect(this.xPos + this.textWidth / 2.0D + 5.0D - 3.0D, + this.yPos - 15.0D, + C2.computeTextWidth("(" + this.partial_or_total + "," + this.disjunct_or_notdisjunct + ")", 2000.0D) + 10.0D, + C2.computeTextHeight() + 12.0D); + } + + + + public double dsfsfsd456457657() { + return this.textWidth; + } + + + + public double getHeight() { + return this.textHeight; + } + + + + public char sdfsdfdsfdf() { + return 'r'; + } + + + + protected Color sefdsfdsf45() { + return C2.ERMRSISAColor; + } + + + + + public String getPartial_or_total() { + return this.partial_or_total; + } + + + + + public void setPartial_or_total(String partial_or_total) { + this.partial_or_total = partial_or_total; + } + + + + + public String getDisjunct_or_notdisjunct() { + return this.disjunct_or_notdisjunct; + } + + + + + public void setDisjunct_or_notdisjunct(String disjunct_or_notdisjunct) { + this.disjunct_or_notdisjunct = disjunct_or_notdisjunct; + } + + + + + + + + protected void changeP_T_D_ND(String partial_or_total, String disjunct_or_notdisjunct) { + this.partial_or_total = partial_or_total; + this.disjunct_or_notdisjunct = disjunct_or_notdisjunct; + if (partial_or_total == null) this.partial_or_total = getDefaultPartial_or_total(); + if (disjunct_or_notdisjunct == null) this.disjunct_or_notdisjunct = getDefaultDisjunct_or_notdisjunct(); + dsfsdfsfd(); + safdsadasds32432456456(); + } + + private String getDefaultPartial_or_total() { + return "p"; + } + + private String getDefaultDisjunct_or_notdisjunct() { + return "nd"; + } + + + + + public String sdfsdfsd32234243() { + return safsafdsa456456456() + "(" + this.partial_or_total + "," + this.disjunct_or_notdisjunct + ")"; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_RS_Identifying_Elem.java b/at/fos/ermodel/gui/Graphic_RS_Identifying_Elem.java new file mode 100644 index 0000000..dbf5823 --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_RS_Identifying_Elem.java @@ -0,0 +1,101 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +import java.io.Serial; + + +public class Graphic_RS_Identifying_Elem + extends Graphic_RS_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + + public Graphic_RS_Identifying_Elem(GraphicsContext gc, double x, double y, String name, long elementID) { + super(gc, name, elementID); + + this.xPos = x; + this.yPos = y; + this.createRelation = false; + this.createInserts = true; + this.numberRowsToInsert = 1L; + } + + + + + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) + return; + this.gc.beginPath(); + this.gc.setStroke(c); + this.gc.strokePolygon(new double[] { this.xPos - this.textWidth / 2.0D, + this.xPos, + this.xPos + this.textWidth / 2.0D, + this.xPos + }, new double[] { this.yPos, + this.yPos - this.textHeight / 2.0D, + this.yPos, + this.yPos + this.textHeight / 2.0D + }, 4); + this.gc.strokePolygon(new double[] { this.xPos - this.textWidth / 2.0D + 3.0D, + this.xPos, + this.xPos + this.textWidth / 2.0D - 3.0D, + this.xPos + }, new double[] { this.yPos, + this.yPos - this.textHeight / 2.0D + 3.0D, + this.yPos, + this.yPos + this.textHeight / 2.0D - 3.0D + }, 4); + this.gc.setFill(C2.ERMTextColor); + this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 17.0D); + this.gc.closePath(); + } + + + + + + + + public String safsafdsa456456456() { + return "RS-ID"; + } + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 1.0D, this.yPos - this.textHeight / 2.0D - 1.0D, this.textWidth + 2.0D, this.textHeight + 2.0D); + } + + + + public double dsfsfsd456457657() { + return this.textWidth; + } + + + + public double getHeight() { + return this.textHeight; + } + + + + public char sdfsdfdsfdf() { + return 'r'; + } + + + + protected Color sefdsfdsf45() { + return C2.ERMRSColor; + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_RS_Main_Elem.java b/at/fos/ermodel/gui/Graphic_RS_Main_Elem.java new file mode 100644 index 0000000..38c83fc --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_RS_Main_Elem.java @@ -0,0 +1,113 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; + +import java.io.Serial; + + +public abstract class Graphic_RS_Main_Elem + extends Graphic_Figure_Elem + implements U3 +{ + @Serial + private static final long serialVersionUID = 1L; + protected boolean createRelation; + protected String relationPraefix; + protected String relationName; + protected boolean createInserts; + protected long numberRowsToInsert = 1L; + + + + + + + + + + public Graphic_RS_Main_Elem(GraphicsContext gc, String name, long elementID) { + super(gc, name, elementID); + this.relationName = this.name.toLowerCase(); + this.relationName = T3.replaceSpecialChars(this.relationName); + this.relationPraefix = this.relationName.charAt(0) + "_"; + this.createInserts = true; + } + + + + + + + protected void changeName(String name) { + super.changeName(name); + + this.relationName = T3.replaceSpecialChars(name.toLowerCase()); + this.relationPraefix = this.relationName.charAt(0) + "_"; + } + + + + public boolean getCreateRelation() { + return this.createRelation; + } + + + public void setCreateRelation(boolean createRelation) { + this.createRelation = createRelation; + } + + + + public String getRelationPraefix() { + return this.relationPraefix; + } + + + public void setRelationPraefix(String relationPraefix) { + this.relationPraefix = relationPraefix; + } + + + + public String getRelationName() { + return this.relationName; + } + + + public void setRelationName(String relationName) { + this.relationName = relationName; + } + + + + public boolean getCreateInserts() { + return this.createInserts; + } + + + + public void setCreateInserts(boolean createInserts) { + this.createInserts = createInserts; + } + + + + public long getNumberRowsToInsert() { + return this.numberRowsToInsert; + } + + + + public void setNumberRowsToInsert(long numberRowsToInsert) { + this.numberRowsToInsert = numberRowsToInsert; + } + + + + + public String sdfsdfsd32234243() { + return super.sdfsdfsd32234243(); + } +} + + diff --git a/at/fos/ermodel/gui/Graphic_Text_Elem.java b/at/fos/ermodel/gui/Graphic_Text_Elem.java new file mode 100644 index 0000000..9dc93fb --- /dev/null +++ b/at/fos/ermodel/gui/Graphic_Text_Elem.java @@ -0,0 +1,137 @@ +package at.fos.ermodel.gui; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; + +import java.io.Serial; + + +public class Graphic_Text_Elem + extends Graphic_Main_Elem +{ + @Serial + private static final long serialVersionUID = 1L; + protected double textWidth; + protected double textHeight; + protected boolean hasBorder; + private int numberLines; + + public double dsfsfsd456457657() { + return this.textWidth; } public double getHeight() { + return this.textHeight; + } + + + + public Graphic_Text_Elem(GraphicsContext gc, double x, double y, String name, boolean hasBorder, long elementID) { + super(gc, elementID); + this.name = name; + if (name == null) this.name = getDefaultName(); + this.hasBorder = hasBorder; + this.xPos = x; + this.yPos = y; + String[] lines = this.name.split("\n"); + this.numberLines = lines.length; + calculateTextWidthHeight(); + } + + + + + + + + protected void changeName(String name) { + this.name = name; + if (name == null) this.name = getDefaultName(); + dsfsdfsfd(); + + String[] lines = this.name.split("\n"); + this.numberLines = lines.length; + calculateTextWidthHeight(); + safdsadasds32432456456(); + } + + + + + + public boolean dsfsfds45645456(double mouseX, double mouseY) { + return mouseX >= this.xPos - dsfsfsd456457657() / 2.0D && mouseX <= this.xPos + dsfsfsd456457657() / 2.0D && + mouseY >= this.yPos - getHeight() / 2.0D && mouseY <= this.yPos + getHeight() / 2.0D; + } + + + + + + public void calculateTextWidthHeight() { + this.textWidth = C2.computeTextWidth(this.name, 2000.0D); + this.textWidth += 20.0D; + this.gc.setFont(C2.ERMFont); + Font f = this.gc.getFont(); + this.textHeight = f.getSize(); + this.textHeight = this.numberLines * this.textHeight + 30.0D; + } + + + + + + + public String toString() { + return "Graphic_Figure_Elem [textWidth=" + this.textWidth + ", textHeight=" + this.textHeight + ", toString()=" + + super.toString() + "]"; + } + + + protected Color sefdsfdsf45() { + return C2.ERMTextBorderColor; + } + + + + public void dsfsdfsfd() { + this.gc.clearRect(this.xPos - this.textWidth / 2.0D - 1.0D, this.yPos - this.textHeight / 2.0D - 1.0D, this.textWidth + 2.0D, this.textHeight + 2.0D); + } + + + + + protected void dsfdsfds6787686(Color c) { + if (!this.isVisible) { + return; + } + this.gc.beginPath(); + + + if (this.hasBorder || c.equals(C2.ERMSelectedColor)) { + this.gc.setStroke(c); + this.gc.strokeRect(this.xPos - this.textWidth / 2.0D, this.yPos - this.textHeight / 2.0D, this.textWidth, this.textHeight); + } + + + this.gc.setFill(C2.ERMTextColor); + if (this.numberLines == 1) { this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos + this.textHeight / 2.0D - 15.0D); } + else { this.gc.fillText(this.name, this.xPos - this.textWidth / 2.0D + 10.0D, this.yPos - this.textHeight / 2.0D + this.textHeight / this.numberLines); } + + this.gc.closePath(); + } + + + + public char sdfsdfdsfdf() { + return 't'; + } + + + + + + public String getDefaultName() { + return "Text"; + } +} + + diff --git a/at/fos/ermodel/gui/T1.java b/at/fos/ermodel/gui/T1.java new file mode 100644 index 0000000..467470e --- /dev/null +++ b/at/fos/ermodel/gui/T1.java @@ -0,0 +1,207 @@ +package at.fos.ermodel.gui; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; + + + + + + + + + + + + + + + + + + +public class T1 + implements Comparable +{ + private String tablename; + private final String tablenamePraefix; + private final long referstoGraphicalElement; + private final ArrayList skjdfhgdskjf674534; + private final ArrayList dependsOnTable; + private final HashMap> columnsOfDependentOnTable; + private final boolean createInserts; + private long jdshfalkajsd677676; + + public T1(String tablename, String tablenamePraefix, long referstoGraphicalElement, boolean createInserts, long numberValues) { + this.tablename = tablename; + this.tablenamePraefix = tablenamePraefix; + this.referstoGraphicalElement = referstoGraphicalElement; + this.createInserts = createInserts; + this.jdshfalkajsd677676 = numberValues; + this.skjdfhgdskjf674534 = new ArrayList<>(); + this.dependsOnTable = new ArrayList<>(); + this.columnsOfDependentOnTable = new HashMap<>(); + } + + + + + + + public void addColumn(C3 column) { + this.skjdfhgdskjf674534.add(column); + + Collections.sort(this.skjdfhgdskjf674534); + } + + + + + + + public void addTableDepdendentOn(T1 table) { + this.dependsOnTable.add(table); + } + + + public String getTablename() { + return this.tablename; + } + + + + public void setTablename(String tablename) { + this.tablename = tablename; + } + + + + public ArrayList getSkjdfhgdskjf674534() { + return this.skjdfhgdskjf674534; + } + + + + + + public int hashCode() { + int result = 1; + result = 31 * result + ((this.tablename == null) ? 0 : this.tablename.hashCode()); + return result; + } + + + + + + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + T1 other = (T1)obj; + if (this.tablename == null) { + return other.tablename == null; + } else return this.tablename.equals(other.tablename); + } + + + + + + + public String toString() { + return "RM_Table [tablename=" + this.tablename + ", tablenamePraefix=" + this.tablenamePraefix + + ", referstoGraphicalElement=" + this.referstoGraphicalElement + ", columns=" + this.skjdfhgdskjf674534 + "]"; + } + + + + + public String getTablenamePraefix() { + return this.tablenamePraefix; + } + + + public int compareTo(T1 arg0) { + return getTablename().compareTo(arg0.getTablename()); + } + + + + + public long getReferstoGraphicalElement() { + return this.referstoGraphicalElement; + } + + + public ArrayList getKeyColumns() { + ArrayList keyColumns = new ArrayList<>(); + for (C3 column : this.skjdfhgdskjf674534) { + if (column.isKey()) { + keyColumns.add(column); + } + } + return keyColumns; + } + + + public boolean hasAutoincrement() { + for (C3 column : this.skjdfhgdskjf674534) { + if (column.isAutoincrement()) { + return true; + } + } + return false; + } + + + + + + + + public boolean columnExist(String colName) { + return this.skjdfhgdskjf674534.contains(new C3(colName)); + } + + + + + public boolean isCreateInserts() { + return this.createInserts; + } + + + + + public long getJdshfalkajsd677676() { + return this.jdshfalkajsd677676; + } + + + + + public void setJdshfalkajsd677676(long numberValues) { + this.jdshfalkajsd677676 = numberValues; + } + + + + + public ArrayList getDependsOnTable() { + return this.dependsOnTable; + } + + + + + public HashMap> getColumnsOfDependentOnTable() { + return this.columnsOfDependentOnTable; + } +} + + diff --git a/at/fos/ermodel/gui/T2.java b/at/fos/ermodel/gui/T2.java new file mode 100644 index 0000000..2562203 --- /dev/null +++ b/at/fos/ermodel/gui/T2.java @@ -0,0 +1,12 @@ +package at.fos.ermodel.gui; + + +public record T2(String tablename, String columnname) { + + + public String toString() { + return "RM_ForeignKeyType [tablename=" + this.tablename + ", columnname=" + this.columnname + "]"; + } +} + + diff --git a/at/fos/ermodel/gui/T3.java b/at/fos/ermodel/gui/T3.java new file mode 100644 index 0000000..b6630f3 --- /dev/null +++ b/at/fos/ermodel/gui/T3.java @@ -0,0 +1,276 @@ +package at.fos.ermodel.gui; +/* */ + +import javafx.scene.Node; +import javafx.scene.effect.ColorAdjust; +import javafx.scene.effect.DropShadow; +import javafx.scene.image.ImageView; +import javafx.scene.paint.Color; + +import java.io.*; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Random; + + +public class T3 +{ + public static HashMap> randomData = new HashMap<>(); + + + public static String[] dsfsdfsdf4353534 = new String[] { + "No", + "Extern", + "Random Integer", + "Random Decimal", + "Random Text", + "Random Date", + "Random Boolean", + "Random Color", + "Random Company", + "Random Country", + "Random Departmentname", + "Random Firstname", + "Random Jobname", + "Random Language", + "Random Lastname", + "Random Mediacategory", + "Random Mediapublisher", + "Random Mediatitle", + "Random Mediatype", + "Random Place", + "Random Profession", + "Random Rentalequipment", + "Random Street" }; + + + public static Object copyObject(Object objSource) { + Object objDest = null; + try { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(bos); + oos.writeObject(objSource); + oos.flush(); + oos.close(); + bos.close(); + byte[] byteData = bos.toByteArray(); + ByteArrayInputStream bais = new ByteArrayInputStream(byteData); + try { + objDest = (new ObjectInputStream(bais)).readObject(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return objDest; + } + + + + + + + public static void asdasda345435ertretr(Node node, double yScale, double xScale, double contrast, double hue, double brightness, double saturation) { + ImageView iv = (ImageView)node; + + iv.setScaleY(yScale); + iv.setScaleX(xScale); + ColorAdjust colorAdjust = new ColorAdjust(); + colorAdjust.setContrast(contrast); + colorAdjust.setHue(hue); + colorAdjust.setBrightness(brightness); + colorAdjust.setSaturation(saturation); + iv.setEffect(colorAdjust); + } + + + + + + + public static void buttonMouseExited(Node node) { + ImageView iv = (ImageView)node; + + iv.setScaleX(1.0D); + iv.setScaleY(1.0D); + iv.setEffect(null); + } + + + public static void fdssdf4354(Node node, Color color) { + DropShadow borderGlow = new DropShadow(); + borderGlow.setOffsetY(0.0D); + borderGlow.setOffsetX(0.0D); + borderGlow.setColor(color); + borderGlow.setWidth(10.0D); + borderGlow.setHeight(10.0D); + node.setEffect(borderGlow); + } + + + + + + + + public static String replaceSpecialChars(String text) { + text = text.replaceAll("ä", "ae"); + text = text.replaceAll("ö", "oe"); + text = text.replaceAll("ü", "ue"); + text = text.replaceAll("ß", "ss"); + text = text.replaceAll("[^\\w\\_]", ""); + return text; + } + + + + + + + + + + + public static String getRandomInteger(int valuesVon, int valuesBis) { + int randomValue = valuesVon + (new Random()).nextInt(valuesBis - valuesVon) + 1; + return String.valueOf(randomValue); + } + + + + + + + public static String getRandomBoolean() { + boolean randomValue = (new Random()).nextBoolean(); + String booleanAsString; + booleanAsString = "0"; + if (randomValue) booleanAsString = "1"; + return booleanAsString; + } + + + + + + + + + + + + + + + + public static String getRandomDecimal(int digitsBeforeComma, int digitsAfterComma) { + StringBuilder digitsAfterCommaAsString = new StringBuilder(); + + StringBuilder digitsBeforeCommaAsString = new StringBuilder(); + int i; + for (i = 0; i < digitsAfterComma; i++) { + digitsAfterCommaAsString.append("9"); + } + int digitsAfterCommaRange = Integer.parseInt((digitsAfterCommaAsString.length() == 0) ? "0" : digitsAfterCommaAsString.toString()); + for (i = 0; i < digitsBeforeComma; i++) { + digitsBeforeCommaAsString.append("9"); + } + int digitsBeforeCommaRange = Integer.parseInt(digitsBeforeCommaAsString.toString()); + + return (new Random()).nextInt(digitsBeforeCommaRange + 1) + "." + (new Random()).nextInt(digitsAfterCommaRange + 1); + } + + + + + + + + + + public static String getRandomTextGivenLength(int textLength) { + String str = "abcdefghijklmnopqrstuvwxyz"; + StringBuilder randomText = new StringBuilder(); + ArrayList charactersAsList = new ArrayList<>(); + for (int j = 0; j < textLength; j++) { + charactersAsList.add(str.charAt((new Random()).nextInt(26))); + } + for (int k = 0; k < charactersAsList.size(); ) { randomText.append(charactersAsList.get(k)); k++; } + return randomText.toString(); + } + + + + + + + + + + + public static String getRandomDate(LocalDate from, LocalDate till) { + Random random = new Random(); + int minDay = (int)LocalDate.of(from.getYear(), from.getMonth(), from.getDayOfMonth()).toEpochDay(); + int maxDay = (int)LocalDate.of(till.getYear(), till.getMonth(), till.getDayOfMonth()).toEpochDay(); + long randomDay = (minDay + random.nextInt(maxDay - minDay)); + LocalDate randomDate = LocalDate.ofEpochDay(randomDay); + String datesAsString; + + datesAsString = randomDate.getYear() + "-" + randomDate.getMonthValue() + "-" + randomDate.getDayOfMonth(); + return datesAsString; + } + + + + + + + + public static void readRandomData(String which, String keyExtern) { + ArrayList randomDataAsList; + try { + BufferedReader fr; + + if (which.equals("Extern")) { fr = C2.randomDataFilesExtern.get(keyExtern); } + else { fr = new BufferedReader(new InputStreamReader(C2.randomDataFiles.get(which))); } + randomDataAsList = new ArrayList<>(); + String next = fr.readLine(); + while (next != null) { + randomDataAsList.add(next); + next = fr.readLine(); + } + fr.close(); + if (which.equals("Extern")) { randomData.put(keyExtern, randomDataAsList); } + else { randomData.put(which, randomDataAsList); } + } catch (IOException e) { + + e.printStackTrace(); + } + } + + + + + + + + + public static String getRandomData(String which, String keyExtern) { + ArrayList randomDataAsList; + if (which.equals("Extern")) { randomDataAsList = randomData.get(keyExtern); } + else { randomDataAsList = randomData.get(which); } + + if (randomDataAsList == null) { + readRandomData(which, keyExtern); + } + + if (which.equals("Extern")) { randomDataAsList = randomData.get(keyExtern); } + else { randomDataAsList = randomData.get(which); } + + return randomDataAsList.get((new Random()).nextInt(randomDataAsList.size())); + } +} + + diff --git a/at/fos/ermodel/gui/U1.java b/at/fos/ermodel/gui/U1.java new file mode 100644 index 0000000..4de608c --- /dev/null +++ b/at/fos/ermodel/gui/U1.java @@ -0,0 +1,87 @@ + package at.fos.ermodel.gui; + + import javafx.scene.control.Alert; + import javafx.scene.control.ButtonType; + import javafx.scene.control.ScrollPane; + import javafx.scene.control.Tab; + import javafx.scene.input.KeyEvent; + import javafx.scene.layout.StackPane; + + import java.io.File; + import java.util.Optional; + + + + + + + + + + + + + + + + + + + public class U1 + extends Tab + { + public final A3 canvas; + public final StackPane stackpane; + public final ScrollPane scrollpane; + + public U1(B3 view, String name, File modelInFile) { + this.stackpane = new StackPane(); + this.stackpane.setBackground(C2.AppBackground); + this.canvas = new A3(view, modelInFile, this); + + this.stackpane.getChildren().add(this.canvas); + + this.scrollpane = new ScrollPane(this.stackpane); + this.stackpane.setFocusTraversable(true); + this.scrollpane.setFocusTraversable(true); + + this.scrollpane.setVmin(0.0D); + this.scrollpane.setVmax(this.canvas.getCanvasHeight()); + this.scrollpane.setHmin(0.0D); + this.scrollpane.setHmax(this.canvas.getCanvasWidth()); + + this.stackpane.addEventFilter(KeyEvent.ANY, e -> this.scrollpane.requestFocus()); + this.scrollpane.addEventFilter(KeyEvent.ANY, e -> this.scrollpane.requestFocus()); + + setOnCloseRequest(e -> { + if (getTabPane().getTabs().size() <= 1) { + e.consume(); + return; + } + C1 alert = new C1(null, Alert.AlertType.CONFIRMATION, "Close Tab", "", "Do you really want to close", Boolean.TRUE, C2.applicationImageIconAsICO, "OK", "Cancel", C2.ButtonBackgroundColor, C2.MouseSelectedColor, C2.FocusOnComponentColor); + Optional result = alert.getResult(); + if (result.isPresent() && result.get() == ButtonType.OK) { + view.selectModeBTN.setSelected(true); + } else { + e.consume(); + } + }); + + + + + this.scrollpane.setOnKeyPressed(U1.this.canvas::sdfdsfd567657rrt); + this.stackpane.setOnKeyPressed(U1.this.canvas::sdfdsfd567657rrt); + + this.canvas.setOnKeyPressed(U1.this.canvas::sdfdsfd567657rrt); + + setContent(this.scrollpane); + if (modelInFile == null) { + setText(name); + } else { + + setText(modelInFile.getName()); + } + this.canvas.requestFocus(); + } + } \ No newline at end of file diff --git a/at/fos/ermodel/gui/U2.java b/at/fos/ermodel/gui/U2.java new file mode 100644 index 0000000..9c901af --- /dev/null +++ b/at/fos/ermodel/gui/U2.java @@ -0,0 +1,69 @@ +package at.fos.ermodel.gui; + +public interface U2 { + boolean getCreateColumn(); + + void setCreateColumn(boolean paramBoolean); + + String getColumnPostfix(); + + void setColumnPostfix(String paramString); + + String getColumnName(); + + void setColumnName(String paramString); + + String getMVRelationName(); + + void setMVRelationName(String paramString); + + String getMVRelationNamePraefix(); + + void setMVRelationNamePraefix(String paramString); + + String getDatatype(); + + void setDatatype(String paramString); + + boolean isKey(); + + void setIsKey(boolean paramBoolean); + + boolean isAutoincrement(); + + void setIsAutoincrement(boolean paramBoolean); + + long getAutoincrementStartAt(); + + void setAutoincrementStartAt(long paramLong); + + boolean isUnique(); + + void setIsUnique(boolean paramBoolean); + + boolean isNullable(); + + void setIsNullable(boolean paramBoolean); + + String getDataGenerationType(); + + void setDataGenerationType(String paramString); + + String getPar1(); + + void setPar1(String paramString); + + String getPar2(); + + void setPar2(String paramString); + + String getPar1_label(); + + void setPar1_label(String paramString); + + String getPar2_label(); + + void setPar2_label(String paramString); +} + + diff --git a/at/fos/ermodel/gui/U3.java b/at/fos/ermodel/gui/U3.java new file mode 100644 index 0000000..a5cc32c --- /dev/null +++ b/at/fos/ermodel/gui/U3.java @@ -0,0 +1,25 @@ +package at.fos.ermodel.gui; + +public interface U3 { + boolean getCreateRelation(); + + void setCreateRelation(boolean paramBoolean); + + String getRelationPraefix(); + + void setRelationPraefix(String paramString); + + String getRelationName(); + + void setRelationName(String paramString); + + boolean getCreateInserts(); + + void setCreateInserts(boolean paramBoolean); + + long getNumberRowsToInsert(); + + void setNumberRowsToInsert(long paramLong); +} + + diff --git a/at/fos/ermodel/gui/U4.java b/at/fos/ermodel/gui/U4.java new file mode 100644 index 0000000..9708615 --- /dev/null +++ b/at/fos/ermodel/gui/U4.java @@ -0,0 +1,8 @@ +package at.fos.ermodel.gui; + +public enum U4 +{ + ADD, REMOVE +} + + diff --git a/at/fos/ermodel/gui/V1.java b/at/fos/ermodel/gui/V1.java new file mode 100644 index 0000000..6148b6f --- /dev/null +++ b/at/fos/ermodel/gui/V1.java @@ -0,0 +1,109 @@ +package at.fos.ermodel.gui; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressBar; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +public class V1 + extends Stage +{ + public static V1 thisActionMessageDialog; + private final Label showFilename; + private Thread th; + + public V1(B3 siteCommanderFrame) { + thisActionMessageDialog = this; + setTitle("Generate/Save SQL-Script"); + + + + getIcons().add(C2.applicationImageIconAsICO); + ProgressBar progress = new ProgressBar(); + progress.setPrefWidth(200.0D); + progress.setProgress(-1.0D); + VBox root = new VBox(); + progress.setBackground(new Background(new BackgroundFill(C2.ButtonBackgroundColor, CornerRadii.EMPTY, Insets.EMPTY))); + this.showFilename = new Label(""); + this.showFilename.setAlignment(Pos.CENTER); + + Scene scene = new Scene(root, 200.0D, 40.0D); + root.getChildren().add(progress); + root.getChildren().add(this.showFilename); + setScene(scene); + + if (siteCommanderFrame != null) { + initOwner(siteCommanderFrame); + } + + + + + + + sizeToScene(); + setResizable(false); + } + + + private void startTimer() { + this.th.setDaemon(true); + this.th.start(); + } + + + + + + public void setThread(Thread th) { + this.th = th; + startTimer(); + showAndWait(); + } + + + + + + public Label getShowFilename() { + return this.showFilename; + } +} + + diff --git a/at/fos/ermodel/gui/ZZ20.java b/at/fos/ermodel/gui/ZZ20.java new file mode 100644 index 0000000..7181f73 --- /dev/null +++ b/at/fos/ermodel/gui/ZZ20.java @@ -0,0 +1,11 @@ +package at.fos.ermodel.gui; + + +public class ZZ20 + extends Exception +{ + public ZZ20(String arg0) { + super(arg0); + } +} + diff --git a/at/fos/ermodel/gui/ZZ30.java b/at/fos/ermodel/gui/ZZ30.java new file mode 100644 index 0000000..7a3f10a --- /dev/null +++ b/at/fos/ermodel/gui/ZZ30.java @@ -0,0 +1,1521 @@ +package at.fos.ermodel.gui; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.ArrayList; +import javafx.scene.control.Tab; + +public class ZZ30 +{ + private final B3 view; + private ArrayList graphicElements; + private C4 relationalModel; + private Graphic_ES_Elem topES; + + public ZZ30(B3 view, ArrayList graphicElements, C4 relationalModel) { + this(view); + this.graphicElements.addAll(graphicElements); + this.relationalModel = relationalModel; + } + + + + + + + + public ZZ30(B3 view) { + this.view = view; + this.graphicElements = new ArrayList<>(); + } + + + public boolean lkshjdskjhsdlkjhds() { + this.relationalModel.setTables(new ArrayList<>()); + + + ArrayList esTraversed = new ArrayList<>(); + + + + + + for (Graphic_Main_Elem gme : this.graphicElements) { + + T1 table = null; + String relationName; + + + + Graphic_ES_Main_Elem entitySet = null; + if (gme instanceof Graphic_ES_Main_Elem) { + entitySet = (Graphic_ES_Main_Elem)gme; + + if (entitySet.getCreateRelation()) { + relationName = entitySet.getRelationName(); + if (entitySet.getRelationPraefix().length() > 0) relationName = entitySet.getRelationPraefix() + entitySet.getRelationName(); + table = new T1(relationName, entitySet.getRelationPraefix(), gme.sdfsdfsdfd(), + entitySet.getCreateInserts(), entitySet.getNumberRowsToInsert()); + + ArrayList keyAttributes = getKeyAttributes(gme); + if (keyAttributes.size() > 1) { + + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + ArrayList weakkeyAttributes = getWeakKeyAttributes(gme); + + if (!(gme instanceof Graphic_ES_Weak_Elem) && !(gme instanceof Graphic_ES_Assoc_Elem) && weakkeyAttributes.size() == 1) { + + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + if (weakkeyAttributes.size() > 0 && keyAttributes.size() > 0) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + ArrayList attributes = getAttributes(gme); + addColumnsToTable(table, attributes); + } + } + if (table != null) { + boolean tableAdded = false; + while (!tableAdded) { + if (this.relationalModel.addTable(table)) { + entitySet.setRelationName(entitySet.getRelationName() + "_1"); + relationName = entitySet.getRelationPraefix() + entitySet.getRelationName(); + table.setTablename(relationName); continue; + } + tableAdded = true; + } + } + } + + + + + + + + ArrayList topESets = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + + + + + + if (gme instanceof Graphic_RS_ISA_Elem grsisae) { + + + this.topES = null; + try { + this.topES = getTopES(grsisae); + if (!esTraversed.contains(this.topES.sdfsdfsdfd())) { + + esTraversed.add(this.topES.sdfsdfsdfd()); + + topESets.add(this.topES); + } + } catch (StackOverflowError ignored) {} + } + } + + + + for (Graphic_ES_Elem gme : topESets) + { + traverseThroughISA(gme); + } + + + + + + for (Graphic_Main_Elem gme : this.graphicElements) { + T1 table = null; + String relationName; + + + Graphic_RS_Main_Elem relationshipType = null; + if (gme instanceof Graphic_RS_Main_Elem) { + relationshipType = (Graphic_RS_Main_Elem)gme; + + if (relationshipType.getCreateRelation()) { + relationName = relationshipType.getRelationName(); + if (relationshipType.getRelationPraefix().length() > 0) relationName = relationshipType.getRelationPraefix() + relationshipType.getRelationName(); + table = new T1(relationName, relationshipType.getRelationPraefix(), gme.sdfsdfsdfd(), + relationshipType.getCreateInserts(), relationshipType.getNumberRowsToInsert()); + ArrayList attributes = getAttributes(gme); + addColumnsToTable(table, attributes); + } + } + if (table != null) { + boolean tableAdded = false; + while (!tableAdded) { + if (this.relationalModel.addTable(table)) { + + + + + + + + + + + + + + relationshipType.setRelationName(relationshipType.getRelationName() + "_1"); + relationName = relationshipType.getRelationPraefix() + relationshipType.getRelationName(); + table.setTablename(relationName); continue; + } + tableAdded = true; + } + } + } + + + + + + + for (Graphic_Main_Elem gme : this.graphicElements) { + T1 table = null; + String relationName; + + + + Graphic_ATTR_Multi_Elem mvAttribute = null; + if (gme instanceof Graphic_ATTR_Multi_Elem) { + mvAttribute = (Graphic_ATTR_Multi_Elem)gme; + relationName = mvAttribute.getMVRelationName(); + if (mvAttribute.getMVRelationNamePraefix().length() > 0) relationName = mvAttribute.getMVRelationNamePraefix() + mvAttribute.getMVRelationName(); + + table = new T1(relationName, mvAttribute.getMVRelationNamePraefix(), gme.sdfsdfsdfd(), false, 0L); + C3 column = new C3(mvAttribute.getMVRelationNamePraefix() + mvAttribute.getColumnName() + (( + mvAttribute.getColumnPostfix() != null && mvAttribute.getColumnPostfix().length() > 0) ? mvAttribute.getColumnPostfix() : ""), + mvAttribute.getDatatype(), + true, + false, + false, + false, + mvAttribute.getAutoincrementStartAt(), + null, + table.getReferstoGraphicalElement(), + null, null, null); + table.addColumn(column); + + Graphic_ES_Main_Elem gesme = getESGivenNumber(gme.sdfsdfsdfd()); + + T1 tableForgemse = this.relationalModel.getTableGivenNumber(gesme.sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(gesme.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + column = new C3(mvAttribute.getMVRelationNamePraefix() + refcolumn.getColumnName(), + refcolumn.getDatatype(), false, false, false, false, + refcolumn.getAutoincrementStartAt(), + new T2(tableForgemse.getTablename(), refcolumn.getColumnName()), + gme.sdfsdfsdfd(), + null, null, null); + table.addColumn(column); + } + } + if (table != null) { + boolean tableAdded = false; + while (!tableAdded) { + if (this.relationalModel.addTable(table)) { + + + + + + + + + + + + + + mvAttribute.setMVRelationName(mvAttribute.getMVRelationName() + "_1"); + relationName = mvAttribute.getMVRelationNamePraefix() + mvAttribute.getMVRelationName(); + table.setTablename(relationName); continue; + } + tableAdded = true; + } + } + } + + + + + + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_ES_Assoc_Elem grsem) { + + ArrayList gesme = getConnectedESToAssociativeESGivenElemNumber(grsem.sdfsdfsdfd()); + + + boolean partPrimary = true; + + ArrayList keys = getKeyAttributes(grsem); + if (keys.size() > 0) partPrimary = false; + keys = getWeakKeyAttributes(grsem); + if (!partPrimary && keys.size() > 0) { + + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + for (Graphic_ES_Main_Elem gesme_conn : gesme) { + T1 tableES = this.relationalModel.getTableGivenNumber(gesme_conn.sdfsdfsdfd()); + + + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(gesme_conn.sdfsdfsdfd()); + + T1 tableRS = this.relationalModel.getTableGivenNumber(grsem.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + + boolean colExists = tableRS.columnExist(tableRS.getTablenamePraefix() + refcolumn.getColumnName()); + C3 column = new C3(tableRS.getTablenamePraefix() + refcolumn.getColumnName() + (colExists ? "_1" : ""), + refcolumn.getDatatype(), + partPrimary, + false, + false, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + tableRS.getReferstoGraphicalElement(), + + null, + null, + null); + + tableRS.addColumn(column); + } + } + } + } + + + + + + + ArrayList doneWeakElements = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (gme instanceof Graphic_RS_Main_Elem grsem) { + + + if (grsem instanceof Graphic_RS_Identifying_Elem grsie) { + + ArrayList connectedES = getConnectedESToRelationshipGivenElemNumber(grsie.sdfsdfsdfd()); + + if (connectedES.size() != 2) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + Graphic_ES_Main_Elem gw_es = null; + Graphic_ES_Main_Elem ges = null; + + + if (connectedES.get(0) instanceof Graphic_ES_Weak_Elem && connectedES.get(1) instanceof Graphic_ES_Weak_Elem) { + continue; + } + + if (connectedES.get(0) instanceof Graphic_ES_Weak_Elem && + connectedES.get(1) instanceof Graphic_ES_Elem) { + gw_es = connectedES.get(0); + ges = connectedES.get(1); + } + if (connectedES.get(1) instanceof Graphic_ES_Weak_Elem && + connectedES.get(0) instanceof Graphic_ES_Elem) { + gw_es = connectedES.get(1); + ges = connectedES.get(0); + } + + if (connectedES.get(0) instanceof Graphic_ES_Weak_Elem && + connectedES.get(1) instanceof Graphic_ES_Assoc_Elem) { + gw_es = connectedES.get(0); + ges = connectedES.get(1); + } + if (connectedES.get(1) instanceof Graphic_ES_Weak_Elem && + connectedES.get(0) instanceof Graphic_ES_Assoc_Elem) { + gw_es = connectedES.get(1); + ges = connectedES.get(0); + } + + + doneWeakElements.add(gw_es); + + + + boolean partPrimary = true; + + ArrayList keys = getKeyAttributes(gw_es); + if (keys.size() > 0) partPrimary = false; + keys = getWeakKeyAttributes(gw_es); + if (!partPrimary && keys.size() > 0) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + assert ges != null; + T1 tableForges = this.relationalModel.getTableGivenNumber(ges.sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(ges.sdfsdfsdfd()); + T1 tableForgwes = this.relationalModel.getTableGivenNumber(gw_es.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + C3 column = new C3(tableForgwes.getTablenamePraefix() + refcolumn.getColumnName(), + refcolumn.getDatatype(), + partPrimary, + !partPrimary, + false, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableForges.getTablename(), refcolumn.getColumnName()), + tableForgwes.getReferstoGraphicalElement(), + + null, + null, + null); + tableForgwes.addColumn(column); + } + } + } + } + + + + + + + int countNotTransformedWeakES = 0; + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (gme instanceof Graphic_RS_Main_Elem grsem) { + + + if (grsem instanceof Graphic_RS_Identifying_Elem grsie) { + + ArrayList connectedES = getConnectedESToRelationshipGivenElemNumber(grsie.sdfsdfsdfd()); + + if (connectedES.size() != 2) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + if (connectedES.get(0) instanceof Graphic_ES_Weak_Elem && connectedES.get(1) instanceof Graphic_ES_Weak_Elem) { + countNotTransformedWeakES++; + } + } + } + } + while (countNotTransformedWeakES > 0) { + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (gme instanceof Graphic_RS_Main_Elem grsem) { + + + if (grsem instanceof Graphic_RS_Identifying_Elem grsie) { + + ArrayList connectedES = getConnectedESToRelationshipGivenElemNumber(grsie.sdfsdfsdfd()); + + if (connectedES.size() != 2) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + Graphic_ES_Weak_Elem gw_es = null; + Graphic_ES_Weak_Elem ges = null; + + + if (connectedES.get(0) instanceof Graphic_ES_Weak_Elem && connectedES.get(1) instanceof Graphic_ES_Weak_Elem) { + if (doneWeakElements.contains(connectedES.get(0))) { + ges = (Graphic_ES_Weak_Elem)connectedES.get(0); + gw_es = (Graphic_ES_Weak_Elem)connectedES.get(1); + } + else if (doneWeakElements.contains(connectedES.get(1))) { + gw_es = (Graphic_ES_Weak_Elem)connectedES.get(0); + ges = (Graphic_ES_Weak_Elem)connectedES.get(1); + } + + + + countNotTransformedWeakES--; + + doneWeakElements.add(gw_es); + + boolean partPrimary = true; + + ArrayList keys = getKeyAttributes(gw_es); + if (keys.size() > 0) partPrimary = false; + keys = getWeakKeyAttributes(gw_es); + if (!partPrimary && keys.size() > 0) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + assert ges != null; + T1 tableForges = this.relationalModel.getTableGivenNumber(ges.sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(ges.sdfsdfsdfd()); + T1 tableForgwes = this.relationalModel.getTableGivenNumber(gw_es.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + C3 column = new C3(tableForgwes.getTablenamePraefix() + refcolumn.getColumnName(), + refcolumn.getDatatype(), + partPrimary, + !partPrimary, + false, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableForges.getTablename(), refcolumn.getColumnName()), + tableForgwes.getReferstoGraphicalElement(), + + null, + null, + null); + tableForgwes.addColumn(column); + } + } + } + } + } + } + + + + + + + + + + + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (gme instanceof Graphic_RS_Main_Elem grsem) { + + + if (grsem instanceof Graphic_RS_Elem) { + + ArrayList gesme = getConnectedESToRelationshipGivenElemNumber(grsem.sdfsdfsdfd()); + + + if (gesme.size() < 2) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + if (gesme.size() == 2) { + + + String[] minMax0; + String[] minMax1; + + String max0; + String max1; + String min0; + String min1; + + + if (gesme.get(0).equals(gesme.get(1))) { + String[] minMaxRecursive = getMinMaxForGivenESRSIfRecursive(grsem.sdfsdfsdfd(), gesme.get(0).sdfsdfsdfd()); + min0 = minMaxRecursive[0]; + max0 = minMaxRecursive[1]; + min1 = minMaxRecursive[2]; + max1 = minMaxRecursive[3]; + } + else { + + minMax0 = getMinMaxForGivenESRS(grsem.sdfsdfsdfd(), gesme.get(0).sdfsdfsdfd()); + minMax1 = getMinMaxForGivenESRS(grsem.sdfsdfsdfd(), gesme.get(1).sdfsdfsdfd()); + max0 = minMax0[1]; + max1 = minMax1[1]; + min0 = minMax0[0]; + min1 = minMax1[0]; + } + + + boolean manyToMany = !max0.equals("1") && !max1.equals("1"); + boolean oneToMany = (max0.equals("1") && !max1.equals("1")) || ( + !max0.equals("1") && max1.equals("1")); + boolean oneToOne = max0.equals("1") && max1.equals("1"); + + + if (oneToOne) { + + boolean keyCorrect = true; + ArrayList keys = getKeyAttributes(grsem); + if (keys.size() > 0) keyCorrect = false; + if (keyCorrect) { + keys = getWeakKeyAttributes(grsem); + if (keys.size() > 0) keyCorrect = false; + + } + if (!keyCorrect) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + + Graphic_ES_Main_Elem es_min_1_side; + Graphic_ES_Main_Elem es_min_0_side; + boolean bothSides_min_1 = false; + if (min0.equals("1") && min1.equals("0")) { es_min_1_side = gesme.get(0); es_min_0_side = gesme.get(1); } + else if (min1.equals("1") && min0.equals("0")) { es_min_1_side = gesme.get(1); es_min_0_side = gesme.get(0); } + + else if (min1.equals("1") && min0.equals("1")) + { es_min_1_side = gesme.get(1); es_min_0_side = gesme.get(0); bothSides_min_1 = true; } + + else + + { es_min_1_side = gesme.get(0); es_min_0_side = gesme.get(1); } + + + + T1 tableRS = this.relationalModel.getTableGivenNumber(grsem.sdfsdfsdfd()); + + T1 tableES = this.relationalModel.getTableGivenNumber(es_min_0_side.sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(es_min_0_side.sdfsdfsdfd()); + T1 table_1_side = this.relationalModel.getTableGivenNumber(es_min_1_side.sdfsdfsdfd()); + + for (C3 refcolumn : keyColumns) { + C3 column = new C3(table_1_side.getTablenamePraefix() + ( + (tableRS.getTablename().length() > 0) ? (tableRS.getTablename() + "_") : "") + + refcolumn.getColumnName(), + refcolumn.getDatatype(), + false, + true, + true, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + table_1_side.getReferstoGraphicalElement(), + + null, + null, + null); + table_1_side.addColumn(column); + } + if (bothSides_min_1) { + + T1 tableES_1 = this.relationalModel.getTableGivenNumber(es_min_1_side.sdfsdfsdfd()); + ArrayList keyColumns_1 = this.relationalModel.getKeyColumnsGivenRelation(es_min_1_side.sdfsdfsdfd()); + T1 table_0_side = this.relationalModel.getTableGivenNumber(es_min_0_side.sdfsdfsdfd()); + + for (C3 refcolumn : keyColumns_1) { + C3 column = new C3(table_0_side.getTablenamePraefix() + ( + (tableRS.getTablename().length() > 0) ? (tableRS.getTablename() + "_") : "") + + refcolumn.getColumnName(), + refcolumn.getDatatype(), + false, + true, + true, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES_1.getTablename(), refcolumn.getColumnName()), + table_0_side.getReferstoGraphicalElement(), + + null, + null, + null); + table_0_side.addColumn(column); + } + } + + + this.relationalModel.removeTable(tableRS); + } + + + + if (oneToMany) { + + boolean keyCorrect = true; + ArrayList keys = getKeyAttributes(grsem); + if (keys.size() > 0) keyCorrect = false; + if (keyCorrect) { + keys = getWeakKeyAttributes(grsem); + if (keys.size() > 0) keyCorrect = false; + + } + if (!keyCorrect) { + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + + + T1 tableRS = this.relationalModel.getTableGivenNumber(grsem.sdfsdfsdfd()); + Graphic_ES_Main_Elem es_n_side; + Graphic_ES_Main_Elem es_1_side; + if (max0.equals("1")) { es_n_side = gesme.get(1); es_1_side = gesme.get(0); } + else { es_n_side = gesme.get(0); es_1_side = gesme.get(1); } + + T1 tableES = this.relationalModel.getTableGivenNumber(es_n_side.sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(es_n_side.sdfsdfsdfd()); + T1 table_1_side = this.relationalModel.getTableGivenNumber(es_1_side.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + + C3 column = new C3(table_1_side.getTablenamePraefix() + (( + tableRS != null && tableRS.getTablename().length() > 0) ? (tableRS.getTablename() + "_") : "") + + refcolumn.getColumnName(), + refcolumn.getDatatype(), + false, + true, + false, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + table_1_side.getReferstoGraphicalElement(), + + null, + null, + null); + table_1_side.addColumn(column); + } + + + this.relationalModel.removeTable(tableRS); + } + + + + + + if (manyToMany) { + + + boolean partPrimary = true; + + ArrayList keys = getKeyAttributes(grsem); + if (keys.size() > 0) partPrimary = false; + keys = getWeakKeyAttributes(grsem); + if (!partPrimary && keys.size() > 0) { + + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + boolean recursiveRelationship = (gesme.get(0).sdfsdfsdfd() == gesme.get(1).sdfsdfsdfd()); + T1 tableES = this.relationalModel.getTableGivenNumber(gesme.get(0).sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(gesme.get(0).sdfsdfsdfd()); + T1 tableRS = this.relationalModel.getTableGivenNumber(grsem.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + + C3 column = new C3(tableRS.getTablenamePraefix() + refcolumn.getColumnName() + (recursiveRelationship ? "_1" : ""), + refcolumn.getDatatype(), + partPrimary, + !partPrimary, + false, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + tableRS.getReferstoGraphicalElement(), + + null, + null, + null); + tableRS.addColumn(column); + } + + tableES = this.relationalModel.getTableGivenNumber(gesme.get(1).sdfsdfsdfd()); + keyColumns = this.relationalModel.getKeyColumnsGivenRelation(gesme.get(1).sdfsdfsdfd()); + tableRS = this.relationalModel.getTableGivenNumber(grsem.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + + C3 column = new C3(tableRS.getTablenamePraefix() + refcolumn.getColumnName() + (recursiveRelationship ? "_2" : ""), + refcolumn.getDatatype(), + partPrimary, + !partPrimary, + false, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + tableRS.getReferstoGraphicalElement(), + + null, + null, + null); + tableRS.addColumn(column); + } + } + } + + + + + + + + if (gesme.size() > 2) { + + boolean partPrimary = true; + + ArrayList keys = getKeyAttributes(grsem); + if (keys.size() > 0) partPrimary = false; + keys = getWeakKeyAttributes(grsem); + if (!partPrimary && keys.size() > 0) { + + + + + + + + + + + + + + this.view.verticalBox.getChildren().clear(); + this.view.generateRelationalModelCB.setSelected(false); + return false; + } + + + for (Graphic_ES_Main_Elem gesme_conn : gesme) { + T1 tableES = this.relationalModel.getTableGivenNumber(gesme_conn.sdfsdfsdfd()); + + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(gesme_conn.sdfsdfsdfd()); + + T1 tableRS = this.relationalModel.getTableGivenNumber(grsem.sdfsdfsdfd()); + + String[] minMax = getMinMaxForGivenESRS(grsem.sdfsdfsdfd(), gesme_conn.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + + boolean colExists = tableRS.columnExist(tableRS.getTablenamePraefix() + refcolumn.getColumnName()); + + C3 column = new C3(tableRS.getTablenamePraefix() + refcolumn.getColumnName() + (colExists ? "_1" : ""), + refcolumn.getDatatype(), + partPrimary, + !partPrimary, + minMax[1].equals("1"), + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + tableRS.getReferstoGraphicalElement(), + + null, + null, + null); + + tableRS.addColumn(column); + } + } + } + } + } + } + + + + + + + + this.relationalModel.sortByTableName(); + + return true; + } + + + + + + + + + + + + + private ArrayList getAttributes(Graphic_Main_Elem gme) { + ArrayList attributes = new ArrayList<>(); + for (Graphic_Main_Elem gmLooking : this.graphicElements) { + + + if (gmLooking instanceof Graphic_LINE_Elem) { + + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem) gmLooking).getConnectedWithStart() instanceof Graphic_ATTR_Elem gae) { + + if (gae.getCreateColumn()) { attributes.add(gae); } + + else + + { attributes.addAll(getAttributes(gae)); } + + } + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithStart().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem) gmLooking).getConnectedWithEnd() instanceof Graphic_ATTR_Elem gae) { + + if (gae.getCreateColumn()) { attributes.add(gae); + + continue; } + + attributes.addAll(getAttributes(gae)); + } + } + } + + return attributes; + } + + + + + + + + + + private void addColumnsToTable(T1 table, ArrayList attributes) { + for (Graphic_Main_Elem gme : attributes) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)gme; + C3 column = new C3(table.getTablenamePraefix() + + gae.getColumnName() + (( + gae.getColumnPostfix() != null && gae.getColumnPostfix().length() > 0) ? gae.getColumnPostfix() : ""), + gae.getDatatype(), + gae.isKey(), + gae.isNullable(), + gae.isUnique(), + gae.isAutoincrement(), + gae.getAutoincrementStartAt(), + null, + table.getReferstoGraphicalElement(), + gae.getDataGenerationType(), + gae.getPar1(), + gae.getPar2()); + table.addColumn(column); + } + } + + + + + + + + private Graphic_ES_Elem getTopES(Graphic_RS_ISA_Elem grsisae) { + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (gme instanceof Graphic_LINE_RSISAG_ES_Elem) { + if (((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithStart().sdfsdfsdfd() == grsisae.sdfsdfsdfd()) { + this.topES = (Graphic_ES_Elem)((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithEnd(); + } + + if (((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithEnd().sdfsdfsdfd() == grsisae.sdfsdfsdfd()) { + this.topES = (Graphic_ES_Elem)((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithStart(); + } + } + } + + + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_RSISAS_ES_Elem) { + if (((Graphic_LINE_RSISAS_ES_Elem)gme).getConnectedWithStart().sdfsdfsdfd() == this.topES.sdfsdfsdfd()) { + getTopES((Graphic_RS_ISA_Elem)((Graphic_LINE_RSISAS_ES_Elem)gme).getConnectedWithEnd()); + } + if (((Graphic_LINE_RSISAS_ES_Elem)gme).getConnectedWithEnd().sdfsdfsdfd() == this.topES.sdfsdfsdfd()) { + getTopES((Graphic_RS_ISA_Elem)((Graphic_LINE_RSISAS_ES_Elem)gme).getConnectedWithStart()); + } + } + } + + return this.topES; + } + + + + + + + private void traverseThroughISA(Graphic_ES_Elem topES) { + Graphic_RS_ISA_Elem topESConnectedWithISA = getISAOfTop(topES); + + if (topESConnectedWithISA == null) + return; + ArrayList specializationsOfTopES; + specializationsOfTopES = getSpecializationsOfTopES(topESConnectedWithISA); + if (specializationsOfTopES.size() == 0) { + return; + } + + + + + + + + + + + + + + + for (Graphic_ES_Elem specialization : specializationsOfTopES) { + boolean partPrimary = true; + ArrayList keys = getKeyAttributes(specialization); + if (keys.size() > 0) partPrimary = false; + + ArrayList weakKeys = getWeakKeyAttributes(specialization); + + if (weakKeys.size() == 1) { + return; + } + + + + + + + + + + + + + + if (weakKeys.size() > 1) partPrimary = false; + + T1 tableES = this.relationalModel.getTableGivenNumber(topES.sdfsdfsdfd()); + ArrayList keyColumns = this.relationalModel.getKeyColumnsGivenRelation(topES.sdfsdfsdfd()); + T1 tableRS = this.relationalModel.getTableGivenNumber(specialization.sdfsdfsdfd()); + for (C3 refcolumn : keyColumns) { + + Graphic_ATTR_Elem gattre = getAttrElemGivenColumnName(tableRS.getTablenamePraefix() + refcolumn.getColumnName()); + + C3 column = new C3(tableRS.getTablenamePraefix() + refcolumn.getColumnName(), + refcolumn.getDatatype(), + partPrimary, + false, + !partPrimary, + false, + refcolumn.getAutoincrementStartAt(), + new T2(tableES.getTablename(), refcolumn.getColumnName()), + tableRS.getReferstoGraphicalElement(), + + gattre.getDataGenerationType(), + gattre.getPar1(), + gattre.getPar2()); + tableRS.addColumn(column); + } + + traverseThroughISA(specialization); + } + } + + + + + + + + + public Graphic_ES_Main_Elem getESGivenNumber(long elementNr) { + + for (Graphic_Main_Elem gme : this.graphicElements) { + + if (gme instanceof Graphic_LINE_Attr_ES_Elem glaese) { + if (glaese.getConnectedWithEnd().sdfsdfsdfd() == elementNr) return (Graphic_ES_Main_Elem)glaese.getConnectedWithStart(); + if (glaese.getConnectedWithStart().sdfsdfsdfd() == elementNr) return (Graphic_ES_Main_Elem)glaese.getConnectedWithEnd(); + } + } + return null; + } + + + + + + + private ArrayList getConnectedESToRelationshipGivenElemNumber(long elementNr) { + ArrayList connections = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Attr_Attr_Elem || gme instanceof Graphic_LINE_Attr_ES_Elem || gme instanceof Graphic_LINE_Attr_RS_Elem) + continue; + if (gme instanceof Graphic_LINE_Elem gle) { + if (gle.getConnectedWithEnd().sdfsdfsdfd() == elementNr) connections.add((Graphic_ES_Main_Elem)gle.getConnectedWithStart()); + if (gle.getConnectedWithStart().sdfsdfsdfd() == elementNr) connections.add((Graphic_ES_Main_Elem)gle.getConnectedWithEnd()); + } + } + return connections; + } + + + + + + + + + private ArrayList getWeakKeyAttributes(Graphic_Main_Elem gme) { + ArrayList attributes = new ArrayList<>(); + for (Graphic_Main_Elem gmLooking : this.graphicElements) { + + + if (gmLooking instanceof Graphic_LINE_Elem) { + + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithStart() instanceof Graphic_ATTR_Weak_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithStart(); + + if (gae.getCreateColumn()) attributes.add(gae); + } + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithStart().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithEnd() instanceof Graphic_ATTR_Weak_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd(); + + if (gae.getCreateColumn()) attributes.add(gae); + } + } + } + return attributes; + } + + + + + + + + + private ArrayList getKeyAttributes(Graphic_Main_Elem gme) { + ArrayList attributes = new ArrayList<>(); + for (Graphic_Main_Elem gmLooking : this.graphicElements) { + + + if (gmLooking instanceof Graphic_LINE_Elem) { + + + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithStart() instanceof Graphic_ATTR_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithStart(); + + if (gae.getCreateColumn()) attributes.add(gae); + } + if (((Graphic_LINE_Elem)gmLooking).getConnectedWithStart().sdfsdfsdfd() == gme.sdfsdfsdfd() && ( + (Graphic_LINE_Elem)gmLooking).getConnectedWithEnd() instanceof Graphic_ATTR_Key_Elem) { + Graphic_ATTR_Elem gae = (Graphic_ATTR_Elem)((Graphic_LINE_Elem)gmLooking).getConnectedWithEnd(); + + if (gae.getCreateColumn()) attributes.add(gae); + } + } + } + return attributes; + } + + + + + + + private ArrayList getConnectedESToAssociativeESGivenElemNumber(long elementNr) { + ArrayList connections = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_Attr_Attr_Elem || gme instanceof Graphic_LINE_Attr_ES_Elem || gme instanceof Graphic_LINE_Attr_RS_Elem) + continue; + if (gme instanceof Graphic_LINE_Elem gle) { + if (gle.getConnectedWithEnd().sdfsdfsdfd() == elementNr && + gle.getConnectedWithStart() instanceof Graphic_ES_Main_Elem) { + connections.add((Graphic_ES_Main_Elem)gle.getConnectedWithStart()); + } + if (gle.getConnectedWithStart().sdfsdfsdfd() == elementNr && + gle.getConnectedWithEnd() instanceof Graphic_ES_Main_Elem) { + connections.add((Graphic_ES_Main_Elem)gle.getConnectedWithEnd()); + } + } + } + return connections; + } + + + + + + + + + + private String[] getMinMaxForGivenESRSIfRecursive(long rs, long es) { + String[] minMax = new String[100]; + int counter = 0; + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_RS_ES_Elem glrsese) { + + if ((glrsese.getConnectedWithEnd().sdfsdfsdfd() == rs && glrsese.getConnectedWithStart().sdfsdfsdfd() == es) || ( + glrsese.getConnectedWithStart().sdfsdfsdfd() == rs && glrsese.getConnectedWithEnd().sdfsdfsdfd() == es)) { + minMax[counter++] = glrsese.getMinimum(); + minMax[counter++] = glrsese.getMaximum(); + } + } + } + return minMax; + } + + + + + + + + + private String[] getMinMaxForGivenESRS(long rs, long es) { + String[] minMax = null; + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_RS_ES_Elem glrsese) { + + if ((glrsese.getConnectedWithEnd().sdfsdfsdfd() == rs && glrsese.getConnectedWithStart().sdfsdfsdfd() == es) || ( + glrsese.getConnectedWithStart().sdfsdfsdfd() == rs && glrsese.getConnectedWithEnd().sdfsdfsdfd() == es)) { + minMax = new String[2]; + minMax[0] = glrsese.getMinimum(); + minMax[1] = glrsese.getMaximum(); + } + } + } + return minMax; + } + + + private Graphic_RS_ISA_Elem getISAOfTop(Graphic_ES_Elem topES) { + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_RSISAG_ES_Elem) { + if (((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithEnd().sdfsdfsdfd() == topES.sdfsdfsdfd()) { + return (Graphic_RS_ISA_Elem)((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithStart(); + } + if (((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithStart().sdfsdfsdfd() == topES.sdfsdfsdfd()) { + return (Graphic_RS_ISA_Elem)((Graphic_LINE_RSISAG_ES_Elem)gme).getConnectedWithEnd(); + } + } + } + return null; + } + + + + + + + + + private ArrayList getSpecializationsOfTopES(Graphic_RS_ISA_Elem topESISA) { + ArrayList connectedES = new ArrayList<>(); + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_LINE_RSISAS_ES_Elem connectionToSpecialization) { + if (connectionToSpecialization.getConnectedWithEnd().sdfsdfsdfd() == topESISA.sdfsdfsdfd()) { + connectedES.add((Graphic_ES_Elem)connectionToSpecialization.getConnectedWithStart()); + } + if (connectionToSpecialization.getConnectedWithStart().sdfsdfsdfd() == topESISA.sdfsdfsdfd()) { + connectedES.add((Graphic_ES_Elem)connectionToSpecialization.getConnectedWithEnd()); + } + } + } + return connectedES; + } + + + + + + + + private Graphic_ATTR_Elem getAttrElemGivenColumnName(String columnName) { + Graphic_ATTR_Elem gattre = null; + for (Graphic_Main_Elem gme : this.graphicElements) { + if (gme instanceof Graphic_ATTR_Elem) { + gattre = (Graphic_ATTR_Elem)gme; + if (gattre.getColumnName().equals(columnName)) return gattre; + } + } + return gattre; + } + + + + + public C4 getRelationalModel() { + return this.relationalModel; + } + + + + + + + + + + + + + + + + public boolean mergeAllModelsInPanes() throws IOException, ClassNotFoundException { + ArrayList graphicElements = new ArrayList<>(); + + for (Tab tab : this.view.tabPane.getTabs()) { + U1 currentTab = (U1)tab; + A3 canvas = currentTab.canvas; + + + + if (canvas.sddsfsfsdf45645645().size() == 0 || canvas.getSaveFile() == null) + continue; ObjectInputStream ro = new ObjectInputStream(new FileInputStream(canvas.getSaveFile())); + @SuppressWarnings("unchecked") ArrayList readModel = (ArrayList)ro.readObject(); + + + for (Graphic_Main_Elem gme : readModel) { + + if (gme instanceof Graphic_ES_Main_Elem) { + + + boolean elementExists = false; + for (Graphic_Main_Elem gmemergeto : graphicElements) { + + if (gmemergeto instanceof Graphic_ES_Main_Elem && + gmemergeto.sdfsdfsd32234243().equals(gme.sdfsdfsd32234243())) { + elementExists = true; + + + for (Graphic_Main_Elem line : readModel) { + if (line instanceof Graphic_LINE_Elem) { + if (((Graphic_LINE_Elem)line).getConnectedWithEnd() == gme) { + ((Graphic_LINE_Elem)line).setConnectedWithEnd((Graphic_Figure_Elem)gmemergeto); + + double[] getxy = ((Graphic_ES_Main_Elem)gmemergeto).getXYForGivenPoint(((Graphic_LINE_Elem)line).getLineConnectedWithPointAtEnd()); + ((Graphic_LINE_Elem)line).setxEnd(getxy[0]); + ((Graphic_LINE_Elem)line).setyEnd(getxy[1]); + } + + if (((Graphic_LINE_Elem)line).getConnectedWithStart() == gme) { + ((Graphic_LINE_Elem)line).setConnectedWithStart((Graphic_Figure_Elem)gmemergeto); + + double[] getxy = ((Graphic_ES_Main_Elem)gmemergeto).getXYForGivenPoint(((Graphic_LINE_Elem)line).getLineConnectedWithPointAtStart()); + line.setxPos(getxy[0]); + line.setyPos(getxy[1]); + } + } + } + } + } + + + if (!elementExists) graphicElements.add(gme); + continue; + } + graphicElements.add(gme); + } + + + ro.close(); + } + + + long elementId = 1L; + for (Graphic_Main_Elem gme : graphicElements) { + gme.dsdasadsasd32423432(elementId++); + } + this.graphicElements = graphicElements; + return graphicElements.size() > 0; + } + + + + + + + public ArrayList getGraphicElements() { + return this.graphicElements; + } +} + + diff --git a/data/colors.txt b/data/colors.txt new file mode 100644 index 0000000..6b2c39a --- /dev/null +++ b/data/colors.txt @@ -0,0 +1,154 @@ +f_farbe +schwarz +weiss +orange +grau +grün +rot +blau +gelb +hellgrün +braun +dunkelgrün +lichtgrün +mittelgrün +lila +hellgrau +goldgelb +stahlblau +dunkelgold +hellblau +dunkelgrau +grüngelb +kakhi +PaleGoldenrod +a_bluename +r170g255b47 +r255g255b255 +r240g232b170 +r240g230b170 +r0g100b0 +r0g101b0 +r0g155b0 +r0g160b0 +r0g121b0 +r0g107b0 +r0g110b0 +r60g230b170 +r240g255b47 +r60g140b170 +r170g255b255 +r200g170b188 +r250g180b252 +r0g110b252 +r110g110b217 +r0g160b2 +r100g190b170 +r110g110b227 +r190g190b131 +r210g190b143 +r70g130b255 +r240g80b238 +r190g190b185 +r240g240b150 +r200g50b105 +r240g20b101 +r220g70b189 +r240g160b178 +r90g180b141 +r200g190b188 +r240g160b231 +r190g100b237 +r140g70b15 +r140g120b71 +r50g160b50 +r230g170b42 +r90g120b252 +r190g190b118 +r160g140b173 +r110g230b218 +r210g140b199 +r240g240b120 +r255g0b148 +r210g140b251 +r250g70b39 +r30g140b191 +r255g160b221 +r240g0b0 +r250g140b39 +r0g170b237 +r0g160b57 +r0g210b255 +r0g255b0 +r240g30b209 +r250g0b0 +r255g130b0 +r255g140b0 +r120g160b255 +r255g255b0 +r150g10b226 +r255g255b194 +r200g255b255 +r180g180b255 +r0g180b0 +r0g90b252 +r140g200b129 +r255g220b87 +r170g255b0 +r150g50b255 +r255g255b178 +r200g200b200 +r240g240b21 +r255g210b0 +r180g10b215 +r200g230b0 +r30g255b253 +r190g150b255 +r80g200b0 +r255g0b0 +r250g10b6 +r170g250b196 +r210g210b212 +r110g150b169 +r100g230b255 +r0g0b255 +r70g160b255 +r70g200b255 +r255g255b133 +r120g240b251 +r210g210b211 +r10g210b0 +r240g240b11 +r240g140b246 +r240g50b239 +r180g240b131 +r210g210b210 +r0g100b255 +r50g190b183 +r0g220b1 +r230g250b100 +r50g210b71 +r255g90b46 +r255g220b0 +r230g255b0 +r130g70b24 +r220g210b223 +r255g200b0 +r250g220b15 +r250g240b141 +r255g90b9 +r60g0b255 +r255g100b0 +r140g210b250 +r255g50b179 +r190g190b190 +r200g0b0 +r100g180b255 +r0g200b0 +r255g180b0 +r255g160b108 +r200g255b0 +r0g255b167 +r0g210b177 +r0g210b242 +r240g140b217 \ No newline at end of file diff --git a/data/companies.txt b/data/companies.txt new file mode 100644 index 0000000..298480d --- /dev/null +++ b/data/companies.txt @@ -0,0 +1,740 @@ +OMV Solutions GmbH +BRVZ GMBH +UPPER Network GmbH +SIMEA GmbH & Co KG +iTEC Informationssysteme AG +Lohmann & Rauscher GmbH +WEBGES +Kufner Textilwerke GesmbH +frontworx AG +smn Investment Services GmbH +Capgemini Consulting Österreich AG +IKARUS Software GmbH +Business Insurance Application Consulting GmbH +ANECON Software Design und Beratung G.m.b.H. +WU-Wien +SOFTCOM Consulting GmbH +on_next Business Solutions +GÖRLITZ Austria GmbH +Allgemeine Unfallversicherungsanstalt +Trust Consult Gesmbh. +Österreichische Lotterien GmbH. +Buchegger, Denoth, Feichtner NET +ELVIA Reiseversicherung +Bundeskriminalamt +Snap Consulting +CATRO Personalsuche, und -auswahl GmbH +Triumph International AG +MANOVA NetBusiness Solutions GmbH +HERKA FROTTIER +Wiener Privatklinik Betriebs-Ges.m.b.H. & Co.KG +ITMCS IT Management Consulting & Service GmbH +Reality Consult GmbH +Hödl Consulting GmbH +Bawag PSK Invest +Boehringer Ingelheim Austria GmbH +Amdocs Qpass Austria GmbH +Im Haus. +Kühne + Nagel +Screenaxx Media Datenverarbeitungs-GesmbH +TPA-Horwath GesmbH +netkey information technology gmbh +Smart Streams Technologies GmbH +Verbund Management Service GmbH +Manpower GmbH +BMK Popolini +Zürich Versicherungs-Aktiengesellschaft +infoscore austria gmbh +mobil data IT & Kommunikationslösungen GmbH +Agrarmarkt Austria +Connex.cc DI Hadek GmbH +HiCo GesmbH +Konrad Lorenz Institut für Vergleichende Verhalten +Bundesrechenzentrum GmbH +Verlagsgruppe News GmbH +Algorithms EDV-Software GmbH +AirPlus Air Travel Card Vertriebsgesellschaft m.b. +FHWien-Studiengänge der WKW +RUBICON IT GmbH +rmc&partner +dydocon IT-Beratung GmbH +PIDAS Österreich GesmbH +BA-CA Administration Services GmbH +Austrian Airlines +VAMED-KMB GmbH +Catro Personalberatung +Software Schneider GesmbH +interio Möbel und Einrichtungs GmbH +Österreichische Post AG +WienIT EDV Dienstleistungs-GmbH & Co KG +IMV Immobilien Management GmbH +Bank Austria Creditanstalt Leasing GmbH +Financial Risk Managment GmbH +BTM Interim Management GmbH +Professional Search +Wienerberger AG +SOL-IT Gmbh +Raiffeisen Bausparkasse GesmbH +ING-DiBa Direktbank Austria +MUELLBACHER Personalberatung +evolaris research & development gmbh +Karriereschmiede Personalberatung +adsolis GmbH +Attingo Datenrettung GmbH +Delegate Technology GmbH +Netviewer GmbH - Niederlassung Österreich +dark-green information technology GmbH +M&P Werbeagentur Ges.m.b.H. +Alcatel-Lucent Austria AG +Akademie der bildenden Künste +Diebold Österreich Selbstbedienungssysteme GmbH +TouchIt Informatik GmbH +Fabasoft International Services GmbH +Tele2 Telecommunication GmbH +Österreichisches Chemiefaser Institut +Magistratsabteilung 48 +Österreichisches Rotes Kreuz +go-mobile IT GmbH +MTIT Elektronische Datenverarbeitung GmbH +Raiffeisen- Niederösterreich-Wien AG +openForce Information Technology GesmbH +Bausparkasse der österreichischen Sparkassen AG +BPB Dutch Connexxion +Forstinger Handel und Service GmbH +Beratungs- Vertriebs- und BeteiligungsgesmbH +mobilkom austria AG +SOS-Kinderdorf International +TTTech Computertechnik AG +Neumann&Partners GmbH +Radio Eins Privatradio GmbH +Gekko Datenverarbeitungs GmbH +Österreichisches Rotes Kreuz LV NÖ +Pohl&Partner Consulting GmbH +Cosmos Elektrohandels GmbH&CO KG +Bank Austria UnicreditGroup +Haus der Barmherzigkeit +Standard IT Business Solution GmbH +dpw H.R. Software GmbH +Macher Solutions GmbH +Cetus-IT Secure GmbH +ÖBB Dienstleistungs GmbH +Bundesanstalt Statistik Österreich +Diakonie-Evangelisches Hilfswerk +Pausch GmbH +LVA-GmbH +Lomographische AG +Christely KEG +Bridge it Unternehmensberatung GmbH +Gebrüder Weiss Paketdienst GmbH +TRUST Treuhand- und Steuerberatung GmbH +SERVITHINK Personalmanagement +ecetra Internet Services AG +Dun & Bradstreet Information Services GmbH +Wirtschaftsauskunftei Wisur GmbH +CONSULT.IT GmbH +Robert Bosch AG +BEKO Engineering&Informatik AG +Altran Österreich GmbH +uma information technology gmbh +Faktor Zehn GmbH +Kapsch Partner Solutions GmbH +s3+ +BEA Electrics GmbH +Consent Personalberatung GmbH +b1 consulting gmbh +The Siesta Group Schlafanalyse GmbH +update software AG +Polansky Personal Beratung +UNITREU Wirtschaftspr. - und Steuerber. GmbH +WIENER LINIEN GmbH & Co KG +Swiss Life Select Österreich GmbH +ENTERPRISE IT - Dienstleistungs & Handels GmbH +Ernst&Young Recruiting +Eurotax Österreich GmbH +SVA - Sozialv. der gewerbl Wirtschaft +REWE International AG +Secur - Data Betriebsberatungs - GmbH. +D.A.T.A. Corporation +Elan IT Resource Austria GmbH +HR Consulting&Managementberatung +Baustoffhandel A. Sochor & Co. GmbH +ITPM IT_Full Service Center +Sonepar Österreich GmbH +Siemens Personaldienstleistungen GmbH & Co KG +HEDAB VerwaltungsgesmbH +codeworks webagency +Michael Resch CAD e.U. +ComFin Software & Consulting Services GmbH +Atos Origin Information Technology GmbH +PL·O·T EDV-Planungs- und Handels GmbH +ASCUS IT-Holding Gmbh +mercuryone performance solutions gmbh +Austria Wirtschaftsservice Gesellschaft mbH +QSC Quality Software & Consulting GmbH & Co KG +GTW Management Consulting GmbH +EconGas GmbH +EPO Consulting GmbH +Vereinigte Bühnen Wien GmbH +Team43 GmbH +Allianz Elementar Versicherungs-Aktiengesellschaft +Procurement Services GmbH (Mmb of Erste Group) +Oracle Corporation +Spängler IQAM Invest +Institut für empirische Sozialforschung GmbH +BAMC GmbH +ready-made Graeff + Schmelzer GmbH +Österreichisches Bundesheer Führungsunterstützung +ITSV GmbH +INFONOVA GmbH +Magistratsabteilung 14 +Cenarion Information Systems AG +Piaodorizzi Photographie +Powerserv Wien +MANZsche Verlags- und Universitätsbuchh. GmbH +CWI Softwaremigrations GmbH +ALPINE Bau GmbH +CELIX Hard- und Software VertriebsGmbH +SPC New Media GmbH +Scientific Games International GmbH +SolveDirect Service Management GmbH +SEC Consult Unternehmensberatung GmbH +NextiraOne Austria GmbH +SynCore Systems EDV-Dienstleistungen GmbH +Neuner Haus +STEINER-HITECH GmbH +ADECCO Personalbereitstellungs GmbH +H O M E - Digital Full Service WerbegmbH +Tieto Austria GmbH +Wien Energie Gasnetz GmbH +Digital River, Inc +SIS Informatik GmbH +Perception Park +Provaria GmbH +emotion banking +Loop21 Mobile Net GmbH +abss interactive GmbH +Krankenhaus der Barmherzigen Brüder Eisenstadt +SobIT GmbH +CIIT GmbH +Camelot Bank Insurance Informatics +paysafecard.com Wertkarten AG +ovos gmbh +bwin.party services +vemap Einkaufsmanagement GmbH +the sportsman media holding gmbh +NETAVIS Software GmbH +card complete Service Bank AG +mesonic datenverarbeitung gmbh +ppedv GmbH +SYCUBE GmbH +STEINADLER HandelsgmbH +pMediaNetwork GmbH +Raiffeisen Kapitalanlage-Gesellschaft m.b.H. +Delugan Meissl Associated Architects +CCA EDV für Versicherungswirtschaft GmbH +Superfund Research GmbH +Universität für Bodenkultur +APC Business Services GmbH +IGEL Software GmbH +Der ORF +rtech engineering GmbH +Santander Consumer Bank GmbH +BOC Unternehmensberatung GmbH +Knowledge Markets Consulting GmbH +WallStreetdocs Ltd. +Erste Group Bank AG +Iventa Group Holding GmbH +s IT Solutions AT Spardat GmbH +Digitalsunray Media GmbH +Zentralanstalt für Meteorologie und Geodynamik +AIT Austrian Institute of Technology GmbH +DIMOCO Europe GmbH +IT Spirit Axel Gruböck e.U. +Proxmox Server Solutions GmbH +Televis Telekommunikation und Service GmbH +Symbionis Software, Skills & Technologies GmbH +Kwizda Holding GmbH +Community TV-GmbH +Die Wiener Volkshochschulen GmbH +The Nielson Company +pmOne GmbH +Competence Call Center GmbH +gitgo GmbH +FH Campus Wien +Freies Radio Wien - Orange 94.0 +Puaschitz IT GmbH +OTAS Computer Software GmbH +UNITIS Personalberatung GmbH +PNC Professionelle Netzwerke & Computersysteme Gmb +Internorm Bauelemente Services GesmbH +REHAU Gesellschaft m.b.H. +SYNGROUP MANAGEMENT CONSULTING GMBH +Greenpeace in Zentral und Osteuropa +makeit informations systems GmbH +GfK SE +Raiffeisen Informatik GmbH +Hochschule für Agrar- und Umweltpädagogik +Ploner Communications +Kunst- und Kulturverein Zum Mitnehmen +werbung / edv.extrascharf +Technopool Jugendförderung +TU Career Center GmbH +A1 Telekom Austria AG +Weingut Kracher +FFG - Österreichische Forschungsförderungsgesellsc +RMI Personalberatung GmbH +smartpoint IT consulting GmbH +TRESCON Betriebsberatungsges.m.b.H. +Dr. Pendl & Dr. Piswanger GesmbH +COFELY Gebäudetechnik GmbH +Accenture GmbH +Personal-Basis Management GmbH +AGIRE Handels- und Werbe- Gesellschaft m.b.H. +APA-IT Informations Technologie GmbH +SENNA Nahrungsmittel GmbH & Co KG +ZWÖLFERKALTENBRUNNER Personalberatung +Österreichisches Verkehrsbüro Aktiengesellschaft +Mondi AG +beyond expectations GmbH +SEIDRA TEXTILWERKE GMBH +WKO Inhouse GmbH der Wirtschaftskammern +Bundeswettbewerbsbehörde +Sabre Austria GmbH +Franke Leuchten GmbH +KVM-TEC Electronic GmbH +Bawag PSK Bank und Österreichische Postsparkasse A +Deloitte Services Wirtschaftsprüfungs GmbH +Wien Energie GmbH +Wiener Stadtwerke Holding AG +Demner, Merlicek & Bergmann Werbegesellschaft mbH +McDonald Werbegesellschaft mbH +Automic Software GmbH +Marti Reisen GmbH +Sabotage Filmproduktion GmbH +Eybl Austria GmbH +ERP-Solutions GmbH +ESONE Executive Solution GmbH +Infocom GmbH +LW Fashion GmbH +Albrecht Business Coaching GmbH +WH IT Services GmbH +Raiffeisen Bank International AG +Loomis Österreich GmbH +ANALYTIKA Betriebsberatung GmbH +Fluxguide Ausstellungssysteme GmbH +IMS Nanofabrication AG +Auftragnehmerkataster Österreich +Way2Production GmbH +Veloce Botendienste GmbH +Flexyfit Plus GmbH +datenwerk Innovationsagentur +Austria Card +LBG Österreich +Dataphone GmbH +Wiener Kongresszentrum Hofburg Betriebs-GmbH +NetPoint Computer Handels- und Beratungs-GmbH +more dimensions gmbh +Veterinärmedizinische Universität Wien +Bernhard Schifer GmbH +Jollydays GmbH +Gaisberger Couture +IST Austria +CROSS-PLATFORM IT GmbH +SEQIS Software Testing GmbH +Vector Software Datenverarbeitung GmbH +more.Software GmbH +IKEA Möbelvertrieb OHG +BORA Vertriebs GmbH & Co KG +Schuh Karosseriebau GmbH +SELECT-IT Beratung und IT Dienstleitung GmbH +ims media gmbh +AUVA Personalabteilung +Verkehrsauskunft Österreich +Juprowa GmbH +joyn-it informationstechnologie gmbh +PMCS.helpLine Software Gruppe +Bauarbeiter-Urlaubs- und Abfertigungskasse +easyconsult GmbH +Raiffeisen Software GmbH +PingPong Communications GmbH +Trans Austria Gasleitung GmbH +Lets Print Holding AG +Österreichische Gesellschaft für Zivilluftfahrt mb +ISIS Papyrus Europe AG +Media-Saturn Beteiligungsgesellschaft m.b.H. +SALESIANER MIETTEX GmbH +Österreichische Bundesforste AG +UNIQA Insurance Group AG +crystalsol GmbH +Include-IT GmbH +BM für Land- und Forstwirtschaft, Stabstelle Geoin +epunkt Internet Recruiting GmbH +Axians ICT Austria GmbH +speedy space og +Turek Herbert Einzelunternehmer +CareCenter Software GmbH +ENERGIEALLIANZ Austria GmbH +Greentube Internet Entertainment Solutions GmbH +HAIDERBAU GmbH +SynerGIS Informationssysteme GmbH +Universität Wien, Faculty IT-Support +GLOBART Privatstiftung +Schulstiftung der Erzdiözese Wien +Marionnaud Parfumeries Autriche GmbH +IMPACT Merchandising GmbH +IT Finance Consulting GmbH +Adverity GmbH +Intelligent Software KG +UNIQUECONNEXXXION Consulting OG +NOVOMATIC Gaming Industries GmbH +Innconcepts IT GmbH +Unipos IT Solutions e.U. +Baustoff + Metall GesmbH +codecan solutions gmbh +Weissinger Günther Dr. +MAM Babyartikel GesmbH +Dentalklinik Margareten +GEKKO it-solutions GmbH +Dr. Mayr et Partners Personal- und Managementber. GesmbH +terna GmbH-Zentrum für Business Software +Clever Contents GmbH +COFACE, Niederlassung Austria +PUR Personaldienstleistung GmbH +Klinger Fluid Control GmbH +Sattler AG +Verein ALOM Manufaktur Haslach +Universität Wien +Atos IT Solutions and Services GmbH +Housing IT Solutions GmbH +HR Force EDV-Beratung GmbH +SCHULMEISTER Management Consulting GmbH & Co KG +BFE Studio und Medien Systeme GmbH +Verein Projekt Integrationshaus +UPC Austria Services GmbH +CyberTrap Software GmbH +Fiat Chrysler Automobiles N.V. +Bundesbeschaffung GmbH +GC Gebäudetechnik KG +cargo-partner GmbH +BM für Verkehr, Innovation und Technologie +Tricentis GmbH +BM für Inneres - Bundesamt zur Korruptionsprävention und -bekämpfung +Watzka Bernd Mag. +Die Schule des Sprechens GmbH +MCP GmbH +Arbeitsgemeinschaft für Datenverarbeitung (ADV) +ASSA ABLOY Austria GmbH +Hartig & Partners GmbH +Flughafen Wien AG +Steininger Designers GmbH +ECOMAL Austria GmbH +contemas GmbH & Co KG +Phoron Consulting GmbH +INOLOX GmbH +BM für Landesverteidigung und Sport +rockit e.U. +service4work IT Solutions GmbH +Zirrus Cloud Service GmbH +CTI Meeting Technology Vienna GmbH +Technische Universität Wien +Stowasser Painhaupt Partner GmbH +D2D - direct document GmbH +twinformatics GmbH +runtastic GmbH +W. Jessernigg GmbH +PPS Public Project Services GmbH +BEST GAMING TECHNOLOGY GmbH +CRIF GmbH +Rechnungshof +Havas Media GmbH +Austrian Power Grid AG +Austrian Standards Institute +UNIDO United Nations Industrial Development Organization +AustriaTech Gesellschaft des Bundes für technologiepolitische Maßnahmen GmbH +IBM Österreich Internationale Büromaschinen Gesellschaft m.b.H. +101 Coding und Design OG +HDI Versicherung AG +INVARIS Informationssysteme GmbH +Österreichische Hagelversicherung VVaG +alladin-IT GmbH +Universität Innsbruck +COREX EDV-Dienstleistungen GmbH +GeoMarketing & GIS Solutions und Services GmbH +FREQUENTIS AG +LINDLPOWER Personalmanagement GmbH +DHL Paket (Austria) GmbH +Interad Leeb Tschinkel OG +BearingPoint GmbH +Landesinnung Wien der Mechatroniker +KTM AG +Wolkenrot Personalmanagement GmbH +consult24 GmbH +springeloo GmbH +JobRocker International GmbH +ITH icoserve technology for healthcare GmbH +ISG Personalmanagement GmbH +Omnetric GmbH +STANDARD Verlagsgesellschaft m.b.H. +QuantaRed Technologies GmbH +no.ova design gmbh +XAL GmbH +Land schafft Leben e.V. +Dietzel GmbH +BM für Wissenschaft, Forschung und Wirtschaft +matrixx IT-Services GmbH +Generali Versicherung AG +Reichmann SPS-Service GmbH +WEIN&CO Handelsgesellschaft m.b.H. +Österreichische Kinderfreunde - Landesorganisation Wien +morgenjungsGmbH +Opernring Einrichtungs GmbH +S&T AG +druck.at Druck- und Handelsgesellschaft mbH +IXOLIT GmbH +FOCUS Marketing Research Ges.m.b.H. +Interspot Film Ges.m.b.H +Ogilvy & Mather GmbH +Bundesforschungszentrum für Wald +ZZ Vermögensverwaltung Ges.m.b.H. +Bundesnetzwerk Österreichische Jugendinfos +Frynx GmbH +D. Swarovski KG +Cubicure GmbH +Amt der Burgenländischen Landesregierung +Identum Communications GmbH +Pörner Anlagenbau GmbH +Ströck-Brot G.m.b.H. +MBI Institut für Marketingberatung AG +CODICO GmbH +Elektro-Wazek EB GesmbH +IVM Technical Consultants Wien Gesellschaft m.b.H. +Neucomed GmbH +TalentChamp Consulting GmbH +Xylem - Science and Technology Management GmbH +POCKET HOUSE Digital Housing Services GmbH in Gründung +Output- und Informationstechnologie Consulting GmbH +Kaleidoscope GmbH +Magistrat Wels +SMZ Ost - Donauspital +Red Bull GmbH +Omnitec Informationstechnologie-Systemservice GmbH +Revolution Event GmbH +Berufsförderungsinstitut Wien (BFI Wien) +Grausam Textil Handels GesmbH +SECURIKETT Ulrich & Horn GmbH +Magistrat Wien - Umwelt-Kanal +EBE Solutions GmbH +teamworx mediamanagement GmbH +Going International Information Services, G. Polak KG +ANCIENTGAME GmbH +CERT.at: Computer Emergency Response Team Austria +Birner Gesellschaft m.b.H. +Schindler IT-Solutions GmbH +Frauenthal Service AG +webLyzard technology gmbh +Wiener Stadtwerke GmbH +Alpha ITC GmbH +Wiener Krankenanstaltenverbund - AKH +epiqo GmbH +Regionalmedien Austria AG +cogvis Software und Consulting GmbH +Cerner Deutschland GmbH +LeitnerLeitner GmbH +CosmeticExpress GmbH +Helbich & Partner GmbH +flux consulting gmbh +IBIOLA Mobility Solutions GmbH +ELHO Wärmetechnik GmbH +MAK - Österreichisches Museum für angewandte Kunst / Gegenwartskunst +Vermessung Schmid ZT GmbH +Internetplatz GmbH +Huemer Data Center Gesellschaft m.b.H. +Infinity - Innovative Projects GmbH +Poltnigg & Klammer ZiviltechnikergesmbH +SanData Technology GmbH&Co KG +TIMETOACT GROUP Österreich GmbH +Continental Automotive Austria GmbH +VIEWPOINTSYSTEM GMBH +Dr. Margula +HILL Webersdorfer GmbH +Station Wien, Verein für Bildung, Beratung und interkulturellen Austausch +Österreichische Bautechnik Vereinigung +DO & CO Aktiengesellschaft +Integral Insurance Broker GmbH +Bundesanstalt für Agrarwirtschaft +Helvetia Versicherungen AG +INiTS Universitäres Gründerservice Wien GmbH +Pavelka-Denk Personalberatung e.U. +ÖHTB Wohnen GmbH +HILLEBRAND Personalberatung +OSS Open Source Solutions GmbH +Lexogen GmbH +Nebily GmbH +Cadaxo GmbH +jw Consulting +Pro-Ject Audio Systems +St. Nikolausstiftung +Timeless Soft GmbH +List BeteiligungsgesmbH +VAMED AG +Brichard Immobilien GmbH +StoreMe GmbH +UseGood Group +Landesschulrat für Niederösterreich +AbbVie GmbH +Creditreform Wirtschaftsauskunftei Kubicki KG +Magistratsabteilung 22 Umwelt +EBCONT personnel service GmbH +PCS IT-Trading GmbH +framsohn frottier GmbH +mömax GmbH +Forsttechnischer Dienst für Wildbach- und Lawinenverbauung +Grain GmbH +Riecken Webservice & Application GmbH +Bacon Bold GmbH +Institut für Mineralölprodukte und Umweltanalytik Ziviltechniker Ges.m.b.H. +Themis +VIDO Network Technology GmbH +Landespolizeidirektion Wien +BDM Business Data Management GmbH +GLOCK Ges.m.b.H. +Wohnbauvereinigung GFW Gemeinnützige GmbH +Österreichische Kontrollbank AG +Venatores Managing Partner GmbH +Waagner-Biro AG +CP Immo Solutions GmbH +World4You Internet Services GmbH +RoboManiac GmbH +B & IT Consulting GmbH +E-QUADRAT COMMUNICATIONS GMBH +AUGUSTIN QUEHENBERGER GROUP GMBH +Landwirtschaftskammer Salzburg +Österreichische Agentur für Gesundheit und Ernährungssicherheit GmbH +Halpern & Prinz Wirtschaftsprüfungs- und Steuerberatungsges.m.b.H. +EODC Earth Observation Data Centre for Water Resources Monitoring GmbH +eurodata comesio GmbH +Management Communication Systems GmbH +Nationales Europass Zentrum +Global Private Network Telecommunication GmbH +KSV1870 Holding AG +Roche Diagnostics GmbH +NTT DATA Österreich GmbH +KDZ Managementberatungs- und Weiterbildungs GmbH +4myHealth GmbH +METRO Cash & Carry Österreich GmbH +tobaccoland Handels GmbH & Co KG +GATX RAIL AUSTRIA GMBH +Österreichische Rundfunk­sender GmbH & Co KG +Magistratsabteilung 01 - Wien Digital +Stadtgemeinde Gerasdorf bei Wien +CELLS+TISSUEBANK AUSTRIA gemeinn. GmbH +Allwerk Bekleidung GmbH Striessing +EBG Gemeinn. Ein- und Mehrfamilienhäuser Baugenossenschaft reg. Gen. m. b. H. +VIDEBIS GmbH +Wiener Wohnen Haus- & Außenbetreuung GmbH +Rohrer Beteiligungs- und Verwaltungs GmbH +Untis GmbH +Expleo Group Austria GmbH +VBV - Betriebliche Altersvorsorge AG +Amt der NÖ Landesregierung +IGIT Information Technologies +schultes.IT +die Berater Unternehmungsberatungs GmbH +Jüdisches Berufliches Bildungszentrum (JBBZ) +MXR Productions GmbH +ECONOMA Engineering GmbH +Com One Austria GmbH +SPP Handelsges.m.b.H. +Consultatio Revision und Treuhand Steuerberatung GmbH & Co KG +ENGIE Austria GmbH +exceet Card Austria GmbH - Niederlassung Wien +ALBERTINA +Dokumentationsarchiv des österreichischen Widerstandes +Magistratsabteilung 2 +Post Systemlogistik GmbH +Bundesamt für Eich- und Vermessungswesen (BEV) +TEAM 7 Natürlich Wohnen GmbH +Schattdecor AG +Doppler, E. doppler & Co. GmbH +Value Dimensions Management Services GmbH +BRAU UNION ÖSTERREICH AG +Magistratsabteilung 41 Stadtvermessung +pharm-analyt Labor GmbH +Vinzenz Gruppe Krankenhausbet.- und Management GmbH +BM für Bildung, Wissenschaft und Forschung +Institut für Höhere Studien - Institute for Advanced Studies (IHS) +Rephil Startup +ACP Holding Österreich GmbH +GAS CONNECT AUSTRIA GmbH +Bundesministerium für Landesverteidigung +MEDIA management GmbH +BENE GmbH +hac human asset consulting +RockLogic GmbH +nic.at GmbH +Stadtgemeinde Klosterneuburg +Hill Woltron Management Partner GmbH +Herba Chemosan Apotheker-AG +Mystery Minds GmbH +IT-Power Services GmbH +ORTNER Gebäudetechnik GmbH +mysoft e.U. +Prime Force GmbH +Pabeschitz Computer Consulting GmbH +NOELLA GmbH +Universität Wien, Fakultät Wirtschaftswissenschaften +SHARK GmbH +Regina Textilreinigungs GmbH +create-mediadesign GmbH +HCM ADVICE KG +Webschmiede GmbH +ZackZack.at c/o Bildungsverein Offene Gesellschaft +Joma Kunststofftechnik GmbH +woom Gmbh +metaconsulting gmbh +Lohnmin - Amy Holczmann +Racing Unleashed AG +ENEROX GMBH +PowerSolution Energieberatung GmbH +Altmüller GmbH +Korschineck & Partner Vermessung ZT-GmbH +4process AG +Ingram Micro GmbH +ENERCON GMBH +Trinity Bet Operations Ltd +room4 Softwareentwicklung OG +CODERS.BAY +GO Sharing Austria GmbH +internex GmbH +STI GmbH +DOT Telematik und Systemtechnik GmbH +HABAU Hoch- und Tiefbaugesellschaft m.b.H. +Karl Landsteiner Privatuniversität für Gesundheitswissenschaften GmbH +JobUp JU GmbH +Credi2 GmbH +Schaumann Holding GmbH +STRABAG SE +Lomnido GmbH +LivinFarms AgriFood GmbH +Donhauser GmbH +CWI Informationstechnologie GmbH +dox42 GmbH +Suchthilfe Wien gemeinnützige GmbH +AIoT Hub Gesmbh +Buffactory Media Ltd +Mona Naturprodukte GmbH +ASKIN & CO GmbH +Havel Healthcare GmbH +TRANSFER Planconsult Datentransfer und Anlagenconsulting GmbH +msg Plaut AG +ibis acam Bildungs GmbH +Coredat Business Solutions GmbH +videocity.bs +P50 GmbH +Volvo Group Austria GmbH +SecAttack GmbH +F.List GmbH +Neudoerfler Office Systems GmbH +EDV 2000 Systembetreuung GmbH +Grant Thornton Austria GmbH +Möbel Halter \ No newline at end of file diff --git a/data/countries.txt b/data/countries.txt new file mode 100644 index 0000000..61a9413 --- /dev/null +++ b/data/countries.txt @@ -0,0 +1,256 @@ +Afghanistan +Ägypten +Aland +Albanien +Algerien +Amerikanische Jungferninseln +Amerikanisch-Samoa +Andorra +Angola +Anguilla +Antarktika +Antigua und Barbuda +Äquatorialguinea +Argentinien +Armenien +Aruba +Aserbaidschan +Äthiopien +Australien +Bahamas +Bahrain +Bangladesch +Barbados +Bassas da India +Belarus +Belgien +Belize +Benin +Bermuda +Bhutan +Bolivien +Bosnien und Herzegowina +Botsuana +Bouvetinsel +Brasilien +Britische Jungferninseln +Britisches Territorium im Indischen Ozean +Brunei Darussalam +Bulgarien +Burkina Faso +Burundi +Cabo Verde +Chile +China +Clipperton +Cookinseln +Costa Rica +Côte dIvoire +Dänemark +Deutschland +Dominica +Dominikanische Republik +Dschibuti +Ecuador +El Salvador +Eritrea +Estland +Eswatini +Europa +Falklandinseln +Färöer +Fidschi +Finnland +Frankreich +Frankreich (metropolitanes) +Französische Süd- und Antarktisgebiete +Französisch-Guayana +Französisch-Polynesien +Gabun +Gambia +Gazastreifen +Georgien +Ghana +Gibraltar +Glorieuses +Grenada +Griechenland +Grönland +Großbritannien +Guadeloupe +Guam +Guatemala +Guernsey +Guinea +Guinea-Bissau +Guyana +Haiti +Heard und McDonaldinseln +Honduras +Hongkong +Indien +Indonesien +Insel Man +Irak +Iran +Irland +Island +Israel +Italien +Jamaika +Japan +Jemen +Jersey +Jordanien +Juan de Nova +Kaimaninseln +Kambodscha +Kamerun +Kanada +Kasachstan +Katar +Kenia +Kirgisistan +Kiribati +Kleinere Amerikanische Überseeinseln +Kokosinseln (Keelinginseln) +Kolumbien +Komoren +Kongo +Kongo, Demokratische Republik +Korea, Demokratische Volksrepublik +Korea, Republik +Kroatien +Kuba +Kuwait +Laos +Lesotho +Lettland +Libanon +Liberia +Libyen +Liechtenstein +Litauen +Luxemburg +Macau +Madagaskar +Malawi +Malaysia +Malediven +Mali +Malta +Marokko +Marshallinseln +Martinique +Mauretanien +Mauritius +Mayotte +Mexiko +Mikronesien +Moldau +Monaco +Mongolei +Montenegro +Montserrat +Mosambik +Myanmar +Namibia +Nauru +Nepal +Neukaledonien +Neuseeland +Nicaragua +Niederlande +Niederländische Antillen +Niger +Nigeria +Niue +Nördliche Marianen +Nordmazedonien +Norfolkinsel +Norwegen +Oman +Österreich +Pakistan +Palau +Panama +Papua-Neuguinea +Paraguay +Peru +Philippinen +Pitcairninseln +Polen +Portugal +Puerto Rico +Réunion +Ruanda +Rumänien +Russische Föderation +Saint-Martin +Salomonen +Sambia +Samoa +San Marino +São Tomé und Príncipe +Saudi-Arabien +Schweden +Schweiz +Senegal +Serbien +Serbien und Montenegro +Seychellen +Sierra Leone +Simbabwe +Singapur +Slowakei +Slowenien +Somalia +Spanien +Spitzbergen +Sri Lanka +St. Barthelemy +St. Helena, Ascension und Tristan da Cunha +St. Kitts und Nevis +St. Lucia +St. Pierre und Miquelon +St. Vincent und die Grenadinen +Südafrika +Sudan +Südgeorgien und die Südlichen Sandwichinseln +Südsudan +Suriname +Syrien +Tadschikistan +Taiwan +Tansania +Thailand +Timor-Leste +Togo +Tokelau +Tonga +Trinidad und Tobago +Tromelin +Tschad +Tschechische Republik +Tunesien +Türkei +Turkmenistan +Turks- und Caicosinseln +Tuvalu +Uganda +Ukraine +Ungarn +Uruguay +Usbekistan +Vanuatu +Vatikanstadt +Venezuela +Vereinigte Arabische Emirate +Vereinigte Staaten +Vietnam +Wallis und Futuna +Weihnachtsinsel +Westjordanland +Westsahara +Zentralafrikanische Republik +Zypern \ No newline at end of file diff --git a/data/departmentnames.txt b/data/departmentnames.txt new file mode 100644 index 0000000..ed15a56 --- /dev/null +++ b/data/departmentnames.txt @@ -0,0 +1,14 @@ +Geschäftsleitung +EDV/IT +Personalwesen +Buchhaltung +Vertrieb +Marketing/Werbung +Produktentwicklung/Konstruktion +Produktion +Materialwirtschaft +Innerbetriebliche Verwaltung +Logistik +Planung und Steuerung von Produktionsabläufen +Beschaffung und Einkauf +eBusiness im Unternehmen \ No newline at end of file diff --git a/data/firstnames.txt b/data/firstnames.txt new file mode 100644 index 0000000..dd4cd50 --- /dev/null +++ b/data/firstnames.txt @@ -0,0 +1,2842 @@ +Robertino +Adriana +Agnes +Albert +Alena +Alexander +Alexandra +Alice +Andrea +Andreas +Angelika +Anita +Anna +Annelies +Annika +Antonio +Arnold +Astrid +Avihai +Babette +Barbara +Beate +Berhnhard +Bernadette +Bernd +Bernhard +Bettina +Birgit +Brigitte +Carina +Carla +Carmen +Carola +Caroline +Cernus +Christian +Christina +Christine +Christof +Christoph +Claudia +Cordelia +Cornelia +Cosima +Dagmar +Daniel +Daniela +Deborah +Denise +Desiree +Dietmar +Dominika +Doris +Elisabeth +Engelbert +Ernest +Ernst +Erzsebet +Eva +Eva-Maria +Evelyn +Fari +Fazlagic +Florian +Friedrich +Gabriel +Gabriela +Gabriele +Gebhard +Gerald +Gerhard +Gernot +Gerrit +Gerwald +Gisela +Gudrun +Günther +Heidrun +Heinz +Helga +Helmut +Henriette +Herbert +Hutan +Ilse +Ines +Ingeborg +Ingrid +Irene +Iris +Isabel +Isabella +Jakob +Jan +Jeannette +Joachim +Joan +Joanne +Johannes +Jonas +Jonny +Josef +Judit +Judith +Julia +Juliane +Julius +Jürgen +Karel +Karin +Kath +Katharina +Kathrin +Katzer +Kerstin +Kiesel +Klaus +Kristina +Kürsad +Laura +Lisa +Lisa-Marie +Lukas +Magali +Mandana +Manfred +Manuel +Marco +Marcus +Maren +Margit +Maria +Marie Therese +Marika +Mario +Marion +Marko +Markus +Marlene +Martin +Martina +Marylin +Mathias +Matthias +Melanie +Melike +Mercedes +Michael +Michaela +Mladen +Monika +Myriam +Natalia +Nicolas +Nicole +Nikolaus +Nina +Norbert +Nowotny +Otto +Pamela +Patricia +Paul +Peter +Peter P. +Petra +Philipp +Pia +Rainer +Regina +Reinhard +Renate +Robert +Roger +Roland +Ronald +Rosmarie +Roswitha +Sabine +Sabrina +Salvatore +Sandra +Sara +Sarah +Sebastian +Sigrid +Silke +Silvia +Simone +Sina +Somya +Sonja +Stefan +Stefanie +Stefi +Stephan +Stephanie +Susanette +Susanne +Sybille +Sylvia +Tamara +Thomas +Tina +Ulrich +Ulrike +Ute +Vanessa +Verena +Veronika +Viktoria +Walter +Waltraud +Willi +Wolfgang +Yvonne +Zsuzsanna +Alois +Friedrich +Victor +Mathias +Josef +Heinrich +Hannes +Anton +Hans +Josef +Karl +Rudolf +August +Alfred +Dieter +Edmund +Alois +Ute +Josef +Karl +Rudolf +Gebhard +Alois +Josef +Alwin +Johann +Jakob +Johann +Anna +Friedrich +Franz +Erwin +Peter +Anneliese +Sepp +Hugo +Michael +Heinrich +Franz +Leopold +Ingeborg +Christian +Josef +Karl +Josef +Thomas +Martin +Luis +Eva +Matthäus +Alois +Franz +Franz +Franz +Leopold +Johann +Hugo +Anton +Ludwig +Johann +Holger +Gertrude +Hannes +Franz +Otto +Christian +Rosemarie +Sophie +Karl +Emil +Georg +Tassilo +Anton +Gerhart +Erich +Franz +Christian +Rudolf +Anton +Anton +Florian +Anton +Ferdinand +Johann +Theodor +Kurt +Felix +Franz +Alfons +Franz +Marie +Franz +Franz +Josef +Karl +Felix +Karl +Wanda +Helmut +Ludwig +Franz +Adalbert +Gabriele +Franz +Rudolf +Josef +Rudolf +Hans +Paul +Hermann +Valentin +Karl +Wolfgang +Johann +Wilhelm +Michael +Rudolf +Johann +Johann +Josef +Anton +Karl +Fritz +Hannelore +Hans +Marie +Gustav +Hans +Josef +Doris +Hans +Karl +Georg +Johann +Franz +Herbert +Karl +Walter +Josef +Anna +Siegmund +Hans +Alois +Paul +Franz +Maximilian +Paul +Alois +Franz +Gottfried +Hildegard +Jakob +Helmut +Walter +Erhard +Karl +Johanna +Johann +Robert +Franz +Josef +Josef +Rudolf +Theodor +Ferdinand +Franz +Heinrich +Irene +Karl +Ottokar +Anna +Josef +Adolf +Hans +Alfred +Anna +Gerhard +Robert +Michael +Erika +Anton +Siegfried +Alois +Josef +August +Alois +August +Maria +Mathias +Johann +Josef +Julius +Sepp +Valentin +Karl +Hubert +Anton +Helmut +Dominikus +Günter +Siegfried +Franz +Hans +Josef +Elisabeth +Karl +Johannes +Leopold +Edith +Leopold +Albin +Alois +Sigisbert +Franz +Anton +Leopold +Hubert +Hans +Martin +Kurt +Karl +Brigitte +Karl +Adolf +Matthias +Josef +Josef +Adalbert +Matthias +Franz +Wolfgang +Herbert +Franz +Theodor +Edda +Hans +Anton +Max +Johann +Wilhelm +Johann +August +Heinrich +Georg +Karl +Maria +Otto +Franz +Maria +Richard +Wolfram +Leopold +Eduard +Helga +Felix +Ferdinand +Franz +Gottfried +Karl +Daniel +Leopold +Wendelin +Hermann +Eduard +Rudolf +Felix +Arnold +Beatrix +Johann +Matthias +Wilhelm +Marilies +Karl +Ferdinand +Adam +Anton +Nikolaus +Anton +Stephan +Erich +Bernhard +Werner +Matthias +Franziska +Adolf +Hans +Robert +Josef +Viktor +Friedrich +Maria +Franz +Leonhard +Rudolf +Hans +Josef +Bartholomäus +Rudolf +Gottfried +August +Josef +Gottlieb +Kurt +Christian +Dh.c. +Ernst +Josef +Pius +Christian +Ernst +Ernst +Heinz +Hermann +Leopold +Johann +Rudolf +Harald +Franz +Karl +Alfred +Anton +Eugen +Leopold +Josef +Franz +Franz +Gerfrid +Hermann +Albrecht +Josef +Michael +Otto +Wilhelm +Eduard +Kurt +Heinz +Alfred +Anton +Hans +Johann +Franz +Karl +Ferdinanda +Florian +Josef +Hermann +Martin +Edeltraud +Rudolf +Bernhard +August +Richard +Leo +Ferdinand +Georg +Robert +Simon +Hermann +Ferdinand +Laurenz +Josef +Gerhard +Alfred +Helmut +Robert +Hermann +Karl +Richard +Walter +Emmy +Alois +Karl +Max +Karl +Rosa +Cordula +Johann +Anton +Friedhelm +Hermann +Balthasar +Gilbert +Karl +Ilse +Emmerich +Georg +Anton +Karl +Alfred +Otto +Adolf +Erwin +Josef +Michael +Rupert +Franz +Friedrich +Hans +Luis +Viktor +Anton +Willi +Emmy +Lotte +Franz +Herbert +Michael +Leopold +Alexander +Josef +Alfons +Alois +Wilhelm +Gottlieb +Walter +Arnold +Heinz +Johannes +Rudolf +Reimar +Heinz +Ilona +Ferdinand +Florian +Josef +Katharina +Robert +Rudolf +Michael +Ferdinand +Hans +Alexander +Herbert +Alfred +Iring +Oswald +Heribert +Leo +Gustav +Marijana +Heinrich +Franz +Leopold +Rudolf +Rudolf +Ferdinand +Hans +Bernhard +Johann +Alois +Josef +Willfried +Franz +Hanna +Maria +Isidor +Ludwig +Ernst +Josef +Friedrich +Julius +Josef +Günter +Florian +Franz +Johann +Jörg +Helmut +Josef +Jakob +Anton +Edith +Ernst +Ernst +Max +Hans +Georg +Josef +Hella +Philipp +Gustav +Christine +Alexander +Rudolf +Holda +Franz +Hans +Leopold +Hans +Karl +Eduard +Josef +Franz +Ludwig +Adolf +Alois +Ernst +Hermann +Bartholomäus +Josef +Sieghard +Josef +Anna +Johann +Johann +Leo +Karl +Alois +Franz +Herbert +Johann +Karl +Michael +Rudolf +Franz +Walter +Josef +Franz +Marie +Johann +Hilde +Hans +Edmund +Hans +Josef +Alois +Franz +Ernst +Christine +Kurt +Franz +Rudolf +Rudolf +Michael +Ferdinand +Karl +Roman +Rosa +Walter +Regina +Johann +Leopold +Franz +Kurt +Franz +Oskar +Franz +Hans +Hermann +Matthias +Siegfried +Karin +Matthias +Josef +Max +Richard +Hans +Hermann +Josef +Franz +August +Helga +Ludwig +Rudolf +Franz +Oswald +Friedrich +Eleonora +Ignaz +Josef +Fritz +Alfred +Ernst +Peter +Josef +Hans +Elisabeth +Hans +Hans +Albert +Heinz +Fritz +Paul +Josef +Leopold +Eleonore +Alois +Friedrich +Anton +Anton +Alois +Johann +Johann +Albert +Hubert +Franz +Hans +Hans +John +Alfred +Herwig +Johann +Johann +Norbert +Friedrich +Harald +Friedrich +Otto +Paul +Erich +Atanas +Karl +Karl +Josef +Karl +Walter +Karl +Edmund +Erich +Karl +Franz +Sepp +Karl +Leopold +Alfred +Hans +Franz +Herbert +Norbert +Kaspar +Maria +Hans +Eleonora +Christian +Eduard +Alexander +Alois +Rudolf +Alfred +Ernst +Josef +Roman +Josef +Anna +Franz +Hubert +Josef +Anton +Michael +Ulrich +Marga +Georg +Anton +Anton +Franz +Alois +Oskar +Franz +Laurenz +Karl +Günther +Gustav +Josef +Franz +Felix +Klaus +Christine +Waltraud +Hans +Jörg +Karl +Karl +Edmund +Josef +Johann +Oskar +Peter +Robert +Gottfried +Karl +Anton +Max +Hans +Leopold +Rosa +Hans +Franz +Max +Franz +Carl +Friedrich +Hans +Michael +Hermann +Johann +Karl +Hans +Hans +Hilmar +Erich +Hedda +Käthe +Erwin +Max +Richard +Georg +Lindi +Johann +Franz +Karl +Julius +Hans +Jörg +Franz +Heinz +Karl +Erwin +Emma +Peter +Othmar +Franz +Elfriede +Konrad +Paul +Irmtraut +Tibor +Friedrich +Josef +Philipp +Franz +Dieter +Kurt +Monika +Paul +Anton +Otto +Nikolaus +Heinrich +Otto +Sixtus +Peter +Leopold +Adolf +Josef +Hans +Günter +Ernst +Franz +Wilhelm +Karl +Josef +Paul +Eduard +Waltraud +Josef +Gerhard +Franz +Ludwig +Josef +Max +Stella +Karl +Viktor +Robert +Otto +Karl +Franz +Fritz +Gregor +Hermann +Mauritius +Friedrich +Albert +Maria +Thomas +Johann +Karl +Josef +Helmut +Anton +Simon +Ernst +Otto +Günther +Alfred +Franz +Karl +Eugen +Hermann +Karl +Erich +Alois +Fritz +Hans +Josef +Kurt +Josef +Engelbert +Egon +Josef +Michael +Friedrich +Franz +Ignaz +Friedrich +Hans +Josef +Adolf +Josef +Leopold +Karl +Emil +Berthold +Otto +Peter +Robert +Erwin +Stefan +Fritz +Ottilie +Vincenz +Maria +Otto +Johann +Susanne +Karl +Anton +Herbert +Anton +Siegfried +Herbert +Franz +Milan +Viktor +Carl +Ernst +Franz +Karl +Friedrich +Emmerich +Franz +Paul +Rupert +Karl +Alfred +Josef +Willi +Rudolf +Albrecht +Theodora +Robert +Fritz +Helga +Rudolf +Franz +Johann +Dominik +Franz +Josef +Georg +Johann +Gerhard +Eduard +Erhard +Ernst +Hanns +Ingrid +Franz +Wilhelm +Josef +Peter +Ludwig +Hans +Karl +Josef +Franz +Julius +Fritz +Leo +Vinzenz +Therese +Hans +Ludwig +Franziska +Günther +Adolf +Adolf +Emil +Josef +Anton +Hermann +Josef +Josef +Michael +Johann +Hermann +Johann +Christa +Karl +Franz +Otto +Josef +Peter +Herbert +Josef +Vinzenz +Johann +Bruno +Jakob +Franz +Otto +Matthias +Maria +Manfred +Matthias +Willibald +Friedrich +Franz +Karl +Elfriede +Rudolf +Georg +Rudolf +Josef +Hilde +Leopold +Otto +Franz +Helmut +Peter +Alexander +Heinrich +Hermine +Johann +Hans +Wenzel +Helmut +Hans +Alexander +Franz +Karl +Leopold +Josef +Harald +Kamill +Astrid +Karl +Walter +Josef +Andreas +Ernst +Erwin +Rudolf +Helmut +Rolf +Heinrich +Alexander +Franz +Max +Josef +Leopold +Michael +Jakob +Klaus +Anton +Franz +Kurt +Max +Karl +Ernst +Michael +Anton +Johann +Wilhelm +Kurt +Raimund +Wilhelm +Alfred +Odo +Vinzenz +August +Wilhelm +Rudolf +Ferdinand +Karl +Karl +Thomas +Leopold +Erwin +Karl +Karl +Anton +Franz +Josef +Heinz +Josef +Josef +Ewald +Rudolf +Margaretha +Johann +Josef +Georg +Aloys +Heinrich +Adele +Rudolf +Franz +Richard +Fritz +Franz +Anton +Bruno +Josef +Eugen +Peter +Karl +Helga +Rudolf +Rudolf +Fritz +Rudolf +Heinrich +Josef +Josef +Hans +Franz +Maria +Hans +Georg +Ferdinand +Franz +Georg +Johann +Johann +Jolanda +Harald +Josef +Julius +Harald +Josef +Franz +Josef +Heidemaria +Ludwig +Josef +Norbert +Peter +Josefine +Oskar +Robert +Heinrich +Franz +Hans +Michael +Otto +Anton +Franz +Hans +Josef +Erhard +Walter +Josef +Othmar +Freda +Theodor +Franz +Franz +Werner +Alois +Hans +Ilse +Evelyn +Maria +Viktor +Wolfgang +Alfred +Wilhelm +Frieda +Johann +Rafael +Edith +Franz +Josef +Herbert +Ferdinand +Josef +Ludmilla +Leopold +Rudolf +Franz +Matthias +Helene +Rudolf +Alois +Michael +Max +Nadine +Rainer +Karl +Annemarie +Leopold +Michael +Johann +Roland +Josef +Rudolf +Josef +Helene +Johann +Fritz +Leo +Johann +Josef +Hans +Otto +Josef +Adolf +Friedrich +Helmut +MMadeleine +Otmar +Viktor +Josef +Karl +Helfried +Josef +Josef +Richard +Berta +Peter +Adam +Franz +Alois +Heinrich +Josef +Norbert +Karl +Josef +Josef +Theodor +Ernst +Peter +Anton +Grete +Alois +Josef +Hubert +Wilhelmine +Leopold +Georg +Karl +Karl +Felix +Hans +Josef +Bruno +Andreas +Wilhelm +Walter +Peter +Stefan +Hans +Franz +Eduard +Hilde +Erich +Josef +Rudolf +Franz +Johann +Hans +Josef +Johann +Josef +Johann +Rosl +Wilhelmine +Maria +Franz +Klara +Franz +Hans +Johann +Vinzenz +Leopoldine +Maria +Kurt +Fritz +Josef +Emil +Marianne +Reinhold +Gustav +Karl +Franz +Albert +Josef +Leopold +Christian +Adolf +Adelheid +Adolf +Alois +Alfred +Franz +Josef +Rudolf +Paul +Walter +Karl +Leopold +Georg +Lothar +Adelheid +Adam +Josef +Franz +Hans +Stefan +Viktor +Hermann +Georg +Rudolfine +Karin +Fritz +Walter +Josef +Gerulf +Josef +Kurt +Josef +Lona +Kurt +Arthur +Robert +Robert +Ferdinand +Anton +Franz +Friedrich +Otto +Hans +Gabriele +Anton +Stefanie +Alois +Eduard +Alois +Erich +Vinzenz +Hans +Alfons +Josef +Robert +Ernst +Heinrich +Stephan +Ferdinand +Ferdinand +Franz +Peter +Hans +Karl +Karl +Josef +Martha +Josef +Wilhelm +Johann +Alfred +Josef +Andreas +Carl +Ricky +Josef +Friedrich +Ernst +Gustav +Jakob +Josef +Adolf +Rudolf +Bernhard +Johannes +Franz +Leopold +Josef +Josef +Otto +Hans +Franz +Karl +Hans +Karl +Hubert +Traude +Franz +Johann +Leopold +Ingrid +Rudolf +Karl +Andreas +Norbert +Othmar +Martin +Karl +Leopold +Johann +Josef +Wilhelm +Lujo +Franz +Emil +Rudolf +Franz +Johann +Johann +Josef +Josef +Franz +Leopold +Otto +Gilbert +Thomas +Adolf +Alfred +Franz +Erwin +Gabrielle +Leonhard +Paul +Rudolf +Konrad +Franz +Karl +Josef +Viktor +Oskar +Stefan +Alfred +Michael +Otto +Karl +Koloman +Paul +Paula +Josef +Josef +Otto +Kurt +Leopold +Franz +Johann +Johann +Friedrich +Helene +Elisabeth +Hans +Anton +Franz +Anton +Stephan +Rosa +Ludwig +Dietmar +Ferdinand +Karl +Maria +Rudolf +Gerhard +Josef +Gerald +Josef +Alois +Emanuel +Johann +Anton +Richard +Oskar +Eduard +Helmut +Lois +Anton +Leopold +Kajetan +Leopold +Helmuth +Herbert +Josef +Jürgen +Ludwig +Walther +Robert +Ignaz +Karl +Franz +Sepp +Ernst +Max +Hugo +Hermann +Friedrich +DJulius +Laurenz +Heinrich +Josef +Hermann +Josef +Helga +Ernst +Günther +Josef +Karl +Josef +Franz +Alois +Matthias +Elias +Johann +Paul +Walter +Max +Anton +Johann +Helga +Stephan +Josef +Johann +Ernst +Franz +Wolfgang +Anton +Herta +Ernst +Werner +Max +Otto +Franz +Hermann +Alois +Josef +Franz +Hans +Hermann +Hans +Josef +Anton +Josef +Rudolf +Alois +Karl +Heidelore +Johann +Helmut +Hans +Johann +Karl +Leopold +Richard +Hans +Robert +Richard +Ernst +Josef +Karl +Gertrude +Rudolf +Anton +Maria +August +Alois +Josef +Anton +Josef +Julie +Viktor +Gottfried +Oskar +Ludwig +Viktor +Franz +Alois +Josef +Franz +Anton +Grete +Adolf +Ewald +Georg +Herbert +Josef +Wolfgang +Günther +Rudolf +Wilhelm +Karl +Franz +Karl +Raimund +Siegfried +Hans +Hans +Franz +Michael +Karl +Adolf +Anton +Gerhard +Adolf +Franz +Heinrich +Helmut +Erwin +Ambros +Karl +Franz +Johannes +Erwin +Otto +Theodor +Wilhelm +Heinrich +Alois +Anton +Herbert +Josef +Josef +Stefan +Josef +Robert +Reinhold +Hans +Johanna +Wilhelm +Agnes +Rupert +Ernst +Hellmuth +Josef +Hubert +Rudolf +Fritz +Josef +Josef +Annemarie +Heinrich +Leopold +Rupert +Franz +Viktor +Gustav +Sylvester +Franz +Ernst +Johann +Christof +Anton +Josef +Franz +Ella +Hermann +Ernst +Johann +Heinrich +Josef +Franz +Josef +Josef +Mathias +Josef +Alois +Franz +Viktor +Fritz +Karl +Franz +Rudolf +Heinrich +Edmund +Josef +Annemarie +Wilhelm +Florian +Karl +Walter +Severin +Georg +Josef +Walter +Hermann +Hans +Hans-Joachim +Jakob +Eduard +Peter +Gustav +Paul +Hans +Josef +Adalbert +Walter +Wilhelm +Alois +Eduard +Alois +Josef +Hans +Susanne +Anton +Friedrich +Ottilie +Michael +Hans +Albert +Alfred +Reinhart +Eduard +Otto +Michaela +Berthold +Johann +Julius +Martin +Alois +Franz +Paul +Peter +Hans +Rupert +Hans +Hans +Demetrius +Franz +Olga +Rosa +Engelbert +Franz +Gernot +Josef +Aloisia +Anton +Josef +Rudolf +Josef +Karl +Paul +Therese +Karl +Manfred +Heinrich +Mathias +Michael +Josef +Albert +Elisabeth +Erich +Friedrich +Heide +Josef +Otto +Herbert +Richard +Karl +Johann +Pius +Emil +Maria +Heinrich +Hermann +Hubert +Albin +Hans +Johannes +Franz +Franz +Ernst +Leopold +Eduard +Günter +Friedrich +Albert +Hans +Aemilian +Michael +Walter +Hildegard +Johann +Josef +Erwin +Edgar +Anton +Erich +Georg +Gustav +Franz +Johann +Franz +Hans +Karl +Wolfgang +Franz +Karl +Franz +Hermann +Vinzenz +Kurt +Johann +Karl +Karl +Erich +Rudolf +Anton +Rudolf +Georg +Viktor +Friedrich +Otto +Josef +Johann +Johann +Karl +Franz +Lelio +Emmerich +Paul +Karl +Karl +Walter +Josef +Otto +Erdmann +Hans +Erich +Erika +Michael +Irene +Helmut +Stefan +August +Manfred +Franz +Josef +Amalie +Andreas +Maria +Anton +Richard +Rudolf +Norbert +Winfried +Albert +Viktor +Georg +Ernst +Heribert +Josef +Josef +Hilde +Josef +Josef +Anton +Sepp +Franz +Stefan +Karl +Karl +Hans +Max +Kurt +Josef +Albert +Gerd +Kurt +Felix +Johann +Franz +Helmuth +Gregor +Hans +Josef +Robert +Hans +Leopold +Rudolf +Fred +Ferdinand +Ernst +Franz +Fanny +Simon +Karl +Richard +Hans +Otto +Otto +Felix +Franz +Ingrid +Josef +Erwin +Otto +Josef +Georg +Leopold +Josef +Johann +Karl +Lola +Rudolf +Rudolf +Franz +Artur +Herbert +Karl +Terezija +Franz +Peter +Max +Ernst +Emmy +Sepp +Martin +Josef +Peter +Ernst +Adolf +Robert +Karl +Franz +Robert +Franz +Alfred +Vinzenz +Martin +Walter +Reinhold +Friedrich +Karl +Hans +Josef +Julius +Rudolf +Walter +Hans +Fritz +Günter +Barthold +Franz +Josef +Anton +Erich +Erich +Josef +Bernhard +Josef +Hans +Ferdinand +Johann +Josef +Susanne +Rudolf +Karl-Albert +Rudolf +Gustav +August +Wilhelm +Felix +Ernst +Anton +Franz +Josef +Ferdinand +Karl +Viktor +Franz +Josef +Franz +Alois +Karl +Anton +Engelbert +Karl +Ignaz +Leopold +Anton +Ferdinand +Anton +Felix +Martin +Oskar +Alois +Friedrich +Simon +Erika +Reinhold +Horst +Marianne +Kurt +Günter +Martin +Rainer +Gertrude +Helmut +Walter +Helmut +Ridi +Werner +Josef +Georg +Günther +Johannes +Harald +Peter +Peter +Heidrun +Sonja +Katharina +Andreas +Georg +Gisela +Ferdinand +Johanna +Nikolaus +Rudolf +Viktor +Horst +Franz +Georg +Ursula +Otmar +Brunhilde +Herbert +Werner +Karl +Robert +Alfred +Karl +Karlheinz +Johann +Peter +Karl +Franz +Günther +Reinhard +Willi +Josef +Franz +Georg +MWilli +Martin +Udo +Liane +Maximilian +Michael +Franz +Elfriede +Hermann +Susanne +Hans +Mares +Kurt +Stefan +Leopold +Ewald +Robert +Willibald +Theresia +Gabriela +Karl +Doris +Alexander +Reinhard +Martina +Hans +Volker +Maria +Wolfgang +Reinhard +Katharina +Helena +Ernst +Sonja +Caspar +Karl +Erwin +Hans +Martin +Michael +Wendelin +Edeltraud +Johannes +Elisabeth +Johannes +Verena +Horst +Brigitte +Stefan +Josef +Peter +Andreas +Hans +Gottfried +Benita +Elisabeth +Josef +Elisabeth +Harald +Herbert +Sonja +Franz +Wolfgang +Katharina +Inge +Franz +Klaus +Franz +Paul +Brigitte +Josef +Fritz +Hermann +Manfred +Sonja +Thomas +Brigitte +Michael +Peter +Engelbert +Franz +Maximilian +Max +Leopold +Hans +Wolfgang +Harald +Karl +Aloisia +Franz +Josef +Franz +Hannes +Ernst +Helga +Johann +Ursula +Karl +Hannes +Harald +Maria-Margarethe +Peter +Daniela +Johann +Gerhard +Monika +Peter +Wolfgang +Leopold +Rudolf +Barbara +Peter +Wolfgang +Reinhart +Herbert +Kurt +Hans +Alfred +Walter +Uta +Ulrike +Michael +Franz +Wolfram +Ilse +Günther +Hilde +Renate +Gerhard +Anton +Friedrich +Thomas +Herbert +Ernest +Karl +Anneliese +Heinz +Otto +Hannes +Johann +Wilfried +Ferdinand +Georg +Maria +Klaus +Wilhelm +Kurt +Christof +Melitta +Franz +Dietrich +Gerhard +Hans +Josef +Eduard +Karl +Hans-Peter +Christa +Karin +Raina +Wolfgang +Hans +Klaus +Karl +Christian +Gabriele +Andrea +Christine +Brunhilde +Beate +Ulrike +Gerhard +Sylvia +Robert +Gerhard +Herbert +Beate +Franz +Anton +Hans +Detlev +Patrick +Jakob +Hermann +Rüdiger +Andreas +Norbert +Anton +Wilhelm +Roland +Theresia +Ulrike +Hermann +Erwin +Günter +Reinhold +Werner +Johanna +Martina +Nikolaus +Johannes +Walter +Andrea +Dieter +Eva +Kurt +Werner +Evelin +Ulrike +Wolfgang +Dietmar +Christoph +Robert +Ludwig +Elisabeth +Karl-Heinz +Ernst +Reinhart +Alfred +Karin +Reinhold +Bernd +Wilhelm +Ilse +Anna +Dieter +Gottfried +Maria +Johann +Ana +Herbert +Germana +Jutta +Hermann +Roswitha +Gerhard +Gerd +Herwig +Günther +Theodor +Günther +Elisabeth +Heinz +Monika +Astrid +Jennifer +Margarete +Johanna +Anna +Paul +Evelyn +Manfred +Harald +Reinhard +Christine +Renate +Heribert +Bernd +Renate +Harald +Josef +Hans +Hans +Peter +Alfredo +Herta +Fritz +Josef +Klaus +Anita +Thomas +Gerhard +Rudolf +Kurt +Konstanze +Bettina +Herwig +Barbara +Sabine +Michaela +Heidemarie +Andreas +Heribert +Klaus +Franz +Franz +Anna +Silvia +Franz +Günther +Norbert +Helga +Christine +Jochen +Michael +Johann +Barbara +Norbert +Notburga +Konrad +Josef +August +Werner +Ingrid +Petra +Ruth +Josef +Elisabeth +Dietmar +Ulrike +Kai +Hermann +Christoph +Johann +Christian +Erika +Rosemarie +Walter +Erwin +Bettina +Gerhard +Heidrun +Elke +Magda +Josef +Maximilian +Benno +Walter +Martin +Uwe +Christine +Helmut +Elisabeth +Günther +Herlinde +Martina +Peter +Hubert +Josef +Reinhold +Herta +Elmar +Susanne +Carina +Roderich +Franz +Karl +Martina +Adelheid +Michaela +Johann +Hermann +Johann +Elisabeth +Sissy +Sonja +Brigid +Renate +Peter +Bernd-Christian +Christine +Christoph +Georg +Herbert +Manfred +Heinz +Elfriede +Helmut +Siegfried +Theodor +Michaela +Klaus +Bernhard +Johann +Leopold +Herbert +Bernd +Ewald +Werner +Klaus +Günter +Dieter +Jörg +Helmut +Eva +Bernhard +Erich +Ferdinand +Ruperta +Ewald +Georg +Wolfgang +Peter +Kurt +Günther +Siegfried +Gabi +Susanne +Anton +Karl-Heinz +MMichael +Andrea +Norbert +Georg +Karin +Angela +Karin +Sonja +Richard +Markus +Wolfgang +Johannes +Jörg +Richard +Michael +Rudolf +Reinhold +Edgar +Ursula +Liese +Marialuise +Hans +Erwin +Reinhard +Wolfgang +Wolfgang +Maria +Waltraut +Gerald +Franz +Franz +Gabriele +Gertraud +Hermann +Heinrich +Rudolf +Josef +Adolf +Heinrich +Herman +v. +Artur +Karl +Edmund +Heinrich +Adolf +Ignaz +Bernhard +Benno +Zigmund +Dagmar +Sebastian +Andrea +Gabriel +Adelheid +Franz +Beatrix +Gerhard +Peter +Hannes +Hubert +Franz +Sylvia +Josef +Christian +Leopold +Lutz +Elmar +Alois +Manfred +Andreas +Wilhelm +Alexander +Bettina +Birgit +Barbara +Wolfgang +Gerald +Bruno +Peter +Heinz-Christian +Veit +Herbert +Norbert +Werner +Karlheinz +Bernhard +Franz +MBarbara +Peter +Andrea +Erwin +Werner +Johannes +Christa +Laura +Michael +Wolfgang +Renate +Peter +Johann +Dorothea +Reinhard +Rosa +Monika +Albert +Christian +Wolfgang +Josef +Elisabeth +Efgani +Hannes +Bernhard +Werner +Juliane +Kurt +Christa +Elisabeth +Stefan +Anneliese +Hans-Peter +Hedwig +Hartmann +Johannes +Johann +Gerhard +Josef +Andrea +Johann +Hermann +Rudolf +Katharina +Oswald +Josef +Peter +Bernd +Johann +Gerhard +Rupert +Carmen +Roman +Johannes +Christian +Harald +Andreas +Anneliese +Mario +Christian +Edith +Walter +Harald +Heidemarie +Susanne +Gerald +Gerhard +Josef +Maximilian +Kurt +Robert +Stefan +Stefan +Martina +Wolfgang +Erich +Rainer +Christiane +Alev +Daniela +Judith +Harald +Tanja +Edmund +Johann +Alois +Nikolaus +Rudolf +Josef +Claudia +Walter +Karl +Franz +Magnus +Elisabeth +Evelyn +Karin +Angelika +Martin +Franz +Peter +Cornelia +Notburga +Josef +Maurycy +Leon +Simon +Adolf +Friedrich +David +Maximilian +Leo +Heinrich +Friedrich +Henryk +Simon +Alois +Julian +David +Nathan +Rudolf +Adolf +Josef +Emil +Max +Alexander +Josef +Julius +Julius +Oswald +Heinrich +Nathan +Josef +Ludwig +Joachim +Maximilian +Gustav +Josef +Raffale +Max +Albert +Giuseppe +Pietro +Josef +Ludwig +Jakub +Heinrich +Eduard +Arnold +Ignaz +Herman +Muna +Michael +Walter +Inge +Gregor +Johanna +Gerd +Klaus +Friedrich +Johann +Reinhard +Hans-Jörg +Verena +Christian +Wilfried +Wolfgang +Sebastian +Mathias +Elisabeth +Markus +Klaus +Maurice +Josef +Martha +Klaus +Tamea +Michael +Willi +Peter +Hannes +Helmut +Martina +Peter +Claus +Laurenz +Josef \ No newline at end of file diff --git a/data/jobnames.txt b/data/jobnames.txt new file mode 100644 index 0000000..23218e4 --- /dev/null +++ b/data/jobnames.txt @@ -0,0 +1,1119 @@ +Laborant(in) +Softwareentwickler/in +Softwaretester/in +Mitarbeiter(in)für SAP Competence Center +Datenbank-Tool Entwickler/in +Mitarbeiter/in bei IT-Dienstleiter +IT System Supporter (m/w) +Software-Entwickler (m/w) +Release Management & Junio Softwareentwickler/in +J2EE Developer/in +MitarbeiterIn im Controlling mit Schwerpunkt Data Warehouse und BI +EDV-Techniker/in +SOFTWARE ENTWICKLER/INNEN +Software Consultant (m/w) +Absolventen der Richtung EDV +SoftwareentwicklerIn .NET +Web-Frontend EntwicklerIn - PraktikantInnen/Teilzeitkräfte +Prüfer/in +Produktmanager/in +Nachhilfe im Erstellen einer Prozesslandschaft +Top-Entwickler/in für SAP Netweaver +Supportbereich - „Customer Engineering Technician“ +EDV-Support und Kundenbetreuung +Web-Entwickler/in +IT-Professional +Datenbankadministrator/in +Offene Stelle im IT-Berreich +Softwareentwickler/in - Netzwerkadministrator/in +Softwareentwickler m/w für Web-Applikationen +Auftragsarbeit +Mitarbeiter/in +.NET Softwareentwickler/in +Software-Entwickler für .net/C# (WPF +SAP Berater/in +JUNIOR EINRICHTUNGSBERATER (M/W/X) +Entwickler/in +Textildesigner/in +nicht mehr aktuell! +Programmierer/in-Webdesigner/in +Junior Java Entwickler mit Datenbankerfahrung und Interesse am Zahlungsverkehr (m/w) +Junior Data Integration Specialists (f/m) +JUNIOR NACHWUCHSKRAFT VERTRIEB (M/W) +IT-NACHWUCHSKRAFT +SAP-ApplikationsentwicklerIn und -betreuerIn +Junior PHP Developer +Video software engineer +Junior & Senior Software Developer +(Junior) SQL Trainer (m/w), Schwerpunkt Administration +Trainee (m/w) im Bereich Training und Consulting +(JUNIOR) MICROSOFT TRAINER (m/w) +Junior Software Entwickler im Bereich Java (m/w) +IT „First Level Support“ +Web-EntwicklerIn (m/w) in Vollzeit +JUNIOR SYSTEM ENGINEER (W/M) ELGA, REF. 953 +Data Engineer +SAP NetWeaver Junior ProgrammiererIn +MitarbeiterIn Systemtesting(m/w) +Field Service Engineer (m/w) +Software EntwicklerIn +SAP ABAB EntwicklerIn +Service Desk MitarbeiterIn +IT Support MitarbeiterIn mit Projekterfahrung +SoftwareentwicklerIn im Bereich Personalverrechnung +SENIOR .NET/ JAVA ENTWICKLERIN (FREELANCER) +Software EntwicklerIn C/C++ +Java / Java EE (J2EE) SoftwareentwicklerIn +IT-Traineeprogramm Software-Entwicklung für HTL-Absolvent/Innen bei REWE International AG +Junior C/C++ Entwickler/in +IT Support Mitarbeiter (m/w) +GRAFIKDESIGNER/IN +IT-Lehrling +Praktikant/-in 1st Level Support +Ferialpraktikant IT-Bereich +Solution Engineering und Web Entwicklung +Trainee für mobile Applikationen (m/w) +Trainee für Video- und Medientechnik (m/w) +Trainee für Webentwicklungen (m/w) +Trainee für Web & Content Management - LAOLA1.tv (m/w) +Trainee - Projektmanagement (m/w) +Trainee für IT- und Netzwerkadministration (m/w) +Open Source Softwareentwickler/in +PHP-Entwickler +Liquidity Risk Reporting +Informatiker/in +Solution Specialist (m/w) +Junior App Developer/in - iOS (ggf. auch Android) +Junior Web Developer/in (HTML/CSS/JS/PHP/SQL) +Senior App Developer/in - iOS (ggf. auch Android) +Web Developer/in (HTML/CSS/JS/PHP/SQL) +App-Tester +IT-Trainer (m/w), Schwerpunkt Development +IT-Trainer (m/w), Schwerpunkt Administration +Analytikerin/Analytiker +JUNIOR SPECIALIST (M/W) +Praktikant/in "Nachbereitung einer Mobilitätserhebung" +Praktikant/in für Software-Entwicklung +Praktikant/in für Software-Tests +Praktikant/in für "RAVE" Analysemethoden +HTL Absolvent/in - Informationstechnologie +IT Support Mitarbeiter (w/m) +Techniker/in im Windows Umfeld (Vollzeit) +JUNIOR ASSISTANT (M/W) +IT-Trainee +IT ExpertIn für Vertriebsanwendungen +ASSISTANT DATA PROCESSING (M/W) +MITARBEITER/IN CHARTING +LINUX SUPPORT Teilzeit (20h) +HTL-Absolvent/in der Elektrotechnik +JAVA-Entwickler/in +Junior Developer Apothekensoftware m/w +SW-Entwicklung - Karenzvertretung +Mitarbeiter im IT Team +Mitarbeiter in der Datenauswertung & Datenbankpflege (m/w) +SystemspezialistInnen +Consultant Data Warehouse (m/w) +Call Center Agent (m/w) +JUNIOR-WEBDEVELOPER(IN) +SENIOR-WEBDEVELOPER(IN) +Praktikumsstelle +SYSTEM- UND NETZWERKADMINISTRATION +Software Entwickler/In .net +IT SUPPORT (m/w) +SYSTEMS ENGINEER (M/W) +Jungtechniker/In +PRAKTIKANT/IN GEBÄUDETECHNIK/ERNEUERBARE ENERGIEN +Backend Developer (m/w) +Systemadministrator (m/w) Microsoft Umfeld +Technical Engineer (m/w) +IT-ADMINISTRATION +Web DeveloperIn (25-30h) +Junior System Engineer (m/w) +Programmierung (m/w) +FERIALPRAKTIKUM 2015 +IT Support mit Kenntnissen in der Medientechnik (m/w) +Licht- und TontechnikerIn (m/w) +Facebook App Developer/in +Junior App Developer/in -­ iOS (ggf. auch Android) +Senior App Developer/in -­ iOS (ggf. auch Android) +MitarbeiterIn für Systemtests (geringfügig / Werkvertrag) +Lehstellenangebote +Teilzeit Grafikdesigner/in +IT Mitarbeiter (m/w) +A1 Lehre Infoday +CLIENT SUPPORT SPECIALIST (M/W) +Offene Lehrstellen +Praktikum +Sortimentsmanager für den Bereich Textil (m/w) +Praktika für Schülerinnen und Schüler +Junior Java Developer (w/m) +IT Generalist (m/w) +Junior Solution Specialist (m/w) +System-Administrator (m/w) +Junior Softwareentwickler .NET Schwerpunkt Webentwicklung [m/w] +Anwendungstechniker (w/m) +Junior Entwickler/SW-Restaurator (m/w) +.NET Software Entwickler (m/w) +Technische Ferialpraxis +Ferialpraxis +SpezialistIn - Finance Projects and Change Management (m/w) +Junior-Softwareentwickler (m/w) Java +Support-Mitarbeiter/in +PHP Web Developer (Backend) +JUNIOR SOFTWARE ENTWICKLER (M/W) C#, .NET IM BEREICH VIDEO-SERVICES +IT-Praktikant +IT-Helpdesk Mitarbeiter m/w +IT (Junior) Mitarbeiter m/w +Junior Webentwickler (m/w) +MITARBEITER/IN FÜR DIE ABWICKLUNG VON BAU- UND INSTANDHALTUNGSVORHABEN +Junior System Coordinator (f/m) +SAP Basis Administrator +Dessignierung und grafische Umsetzung +Qualitätssicherung / Applikationsbetreuung +Supportmitarbeiter/in +IT-Forensik Referent/-in +Produkt Specialist Junior/Senior im Technischen & Advanced Produkt Support 24/7 (m/f) +Junior System Integrator (f/m) +Lehrling Großhandelskaufmann/frau +Grafiker/in - Praktikum +Ferialpraktikant/-in +IT Helpdesk Mitarbeiter/in +IT-Pflichtpraktikanten (m/w) +Junior SAP Consultant (m/w) +Network Engineer für IPDatennetze (m/w) +Network Engineer für IP Datennetze (m/w) +GIS TechnikerIn mit AutoCAD-Kenntnissen +IT Infrastruktur Engineer (m/w) +Grafiker/in +Projektmanager E-Commerce (m/w) +Web-Entwickler (m/w) Junior / Senior +Softwareentwickler (m/w) +JUNIOR SPECIALIST IT (m/w) +Java Developer +Systemadministrator +Lehrling EDV-Technik (m/w) +Junior Web Developer/in +Senior Web Developer/in +Systemadministrator (m/w) +Frontend Entwickler/in Teilzeit/Vollzeit +Backend Entwickler/in Teilzeit/Vollzeit +Datawarehouse SpezialistIn +MitarbeiterIn Projektmanagement Office +Produktions-Praktikum +IT Projektmanager/in +Software Requirements Analyst +WEB Developer +Junior Software Developer +MaschinenführerIn Kaschierung +ERP-Consultant (m/w) +Junior Consultant Share Point (m/w) +PHP DEVELOPER (m/w) +Junior Product & Bying Manager (w/m) +Software-Entwickler PHP(m/w) +IT-Ferialpraktikanten (w/m) +Junior Softwareentwickler/in (Oracle Apex) +Junior Software Developer (m/w) +Mitarbeiter/in Alarmcenter +Junior-Consultant IT +SOFTWARE ENTWICKLER (M/W) C#, SQL, .NET +Mobile Webapp Developer 20-30h (m/w) +Linux Administrator Junior (m/w) +Trainee IT-Projektmanagement (m/w) +Trainee Netzwerktechnik (m/w) +Trainee Social Collaboration (m/w) +Junior SW-Entwickler (m/w) für 3-D Drucker +Systemadministrator/in +SW Developer/in +IT Support und SW-Entwickler/in +Grafiker und Mediendesigner/In +Trainee Server (m/w) +Product Owner/in +SYSTEMENTWICKLER/IN (C++ / SQL) +Software-Entwicklung +Client Database Specialist (w/m) +Junior Programmierer/Techniker (m/w) +Reference Data Specialist (w/m) +ProjektkoordinatorIn Schwerpunkt Neue Medien und EDV +Informatiker-Ferialpraktikum +IT-Techniker(in) +Sommer-/ Berufspraktikum (m/w) +Programmierer(in) +Mitarbeiter (m/w) Programmierung Entwicklung / Anpassungsprogrammierung +Geringfügige Besch. & Ferialpraxis +Category Expert/Reference Data Specialist (w/m) +Statistical Operations Analyst (f/m) +Software Entwickler (C# und C++) +IT User Support - Allrounder (w/m) - Teilzeit +Textil-/Grafikdesigner/in +Lehrstellenangebot +Manager FM - TGM (Technisches Gebäude Management) +Junior Systems Engineer (m/w) +Junior Software Tester (m/w) +Software-Entwickler JAVA (m/w) +Ferialpraktikum Informatik +Web-Frontend-Developer (m/w) +Java Developer (m/w) +IT-TestmanagerIn (Java-Umfeld) +EntwicklerIn SAP IS-U +EntwicklerIn SAP CRM (Akquisition und KundInnenservice) +IT-ServicetechnikerIN +IKEA Lehrling Informationstechnologie-Technik (w/m) +Junior Softwareentwickler .NET Schwerpunkt Webentwicklung [m/w], Wien +Software-Ingenieur für Embedded Software (m/w) +IT Projektmitarbeiter (m/w) Mitte Mai bis Mitte September 2016 +Berufseinsteiger im IT Support (m/w) +Junior Java Software Engineer (m/w) +IT-Allrounder/in +Junior IT-Support (m/w) für 20h +Praktikum (m/w) MEDIENDESIGN - ANIMATION +Data Warehouse- / Datenbank Spezialist(in) +Application-/System Manager +FERIALSTELLE IT, Juli 2016 und/oder August 2016 oder 6 Wochen +Junior Softwareentwickler/in +HTML5 JavaScript Developer in 1010 Wien gesucht für den Bereich B2B (Teilzeit / Vollzeit (m/w)) +HPHP Developer für B2B Bereich - Visionär in 1010 Wien gesucht +Java Software Engineer (m/w) +Associate IT-Consultant (m/w) Service Management +DATENBANK-ADMINISTRATOR/IN +Junior Technical Consultant (m/w) +Junior Technical Consultant im Bereich Risikomanagement (m/w, OE 4113) +Film-Praktikant/in +Praktikant/in im Bereich Gasmessung +Praktikant/in im Bereich System Management +Praktikum (m/w) +BerufseinsteigerInnen im Bereich Datenerfassung & Datenbankpflege +IT SECURITY OFFICER (m/w) +JUNIOR IT SYSTEMKAUFMANN +Business Application Developer (m/w) +Mobile Device Developer (m/w) +Junior Software-Tester/ Test-Engineer (m/w) +(Junior) Anwendungsentwickler (m/w) +JavaScript / HTML Developer (m/w) +IT Project Engineer (m/w) - international Projektabwicklung +International IT Consultant (m/w) +C++ Entwickler (m/w) +GRAFIKDESIGNER/IN | MOTION | TV +Mitarbeiter/in im EDI Support (electronic data interchange) +TESTAUTOMATISIERUNG SPEZIALIST/IN +Intern +Junior IT-Specialist/in Anwendungsentwicklung +Junior IT Support Controlling (VBA/EXCEL/ABAP) m/w +IT Business Analytiker (m/w) mit dem Schwerpunkt Outputmanagement / Druck +Ferialpraktikum +VerwaltungspraktikantIn +Junior Zeitreisende/r Traineeprogramm Mainframe +SAP Technology Consultant (m/w) +Spezialist für Cloud Automation (m/w) +SAP Consultant (m/w) +Mitarbeiter/in im Bereich SEO und SEM +SOMMERJOB: für kreative/n Frontend Webdesigner/in mit Option auf Verlängerung +Junior-C#/SQL-Developer +EinkäuferIn/AssistentIn +SachbearbeiterIn im Einkauf +SYSTEMS ENGINEER (W/M) +(JUNIOR) VB.NET-ENTWICKLER/IN +JUNIOR DATA WAREHOUSE-ENTWICKLER/IN +PraktikantIn - IT Beratung +Mitarbeiter IT Servicedesk und Administration (m/w) +JobInfo-Tag +HTL - Absolvent (m/w) Hochbau in Vollzeit +MitarbeiterIn für Python Entwicklung +Lehrstelle Informationstechnologie / Technik +Freier Mitarbeiter +IT-SystemadministratorIn +Junior eCommerce ManagerIn +Grafik und Design - Interesse an Mode +Java Developer (m/w) - Software Entwickler Java +HTL Absolventen IT-Bereich (m/w) +Mitarbeiter/in für die technische Hotline +Betriebs- und ProjektreferentIn Bereich Busbetrieb +ProgrammiererIn/SW-EntwicklerIn +Junior IT-Allrounder +HTL-/FH-Absolvent für IT-Projektmanagement & Support mit erster Berufserfahrung m/w +Laboratory Technician (Photovoltaic) +Concept Artist (m/w) +Installer/Trainer +PROGRAMMIERER/IN +Software Developer (m/w) +Diverse Jobangebote +Informationstechnische Unterstützungstätigkeit +Passenger Service Agent (m/w) +Betriebs- und ProjektreferentIn +IT-Spezialist (w/m) CRM- und Datenmanagement +IT-Spezialist (w/m) Onlinebetreuung +Laboratory Technician +Technischer Support & EntwicklerIn +Kundenservice +MitarbeiterIn im IT-Support +Junior-IT-SystemadministratorIn +Freelancer für technische Aushilfe (auf Abruf) +Junior IT-Mitarbeiter Software & Datenbanken (m/w) (Schwerpunkt: Maintenance) +Junior IT Support (m/w) +Embedded Entwickler(in) +Betriebsleitung +Produktionsleitung mit textiltechnischem Schwerpunkt +Junior Software Entwickler/-in +Produktentwickler/in mit Schwerpunkt Gewebe +Softwareentwickler/in im Bereich Microsoft Dynamics CRM +Techniker +Ferialpraktikanten (m/w) +Universitätsassistent/in +University Assistant (post doc) +ASP.net MVC Entwickler (m/w) +Implementierungsberater ESS/MSS SAP ERP HCM (m/w) +Softwareentwickler (w/m) +Mess- und Inbetriebnahme-Ingenieur/-in für Broadcast-Technik +Planungs- und Projektingenieur/-in für Broadcast-Technik +Mitarbeiter/in für den Bereich Betriebsorganisation und EDV +IT-Spezialist (w/m) Anforderungs- und Testmanagement +Online Learning Specialist (m/w) +Praktikumsplätze: Webdevelopment (Fronten, Backend) und App Development (iOS, Android) +IT Experten(in)/Techniker(in) +Development Support (m/w, Teilzeit 20 W.Std.) +IT-Spezialist (w/m) SAP-Modulbetreuung HCM +VERBUND-Traineeprogramm für IT-Berufseinsteiger/-innen +Trainee für den Bereich ICT m/w +Junior IT-Projektmanager/in +Junior Projektmanager/in +Junior Systems Engineer (m/w) - IT Support / Application Management +Praktikumsplatz zum Thema Gamification +Lehrplatz für EDV-affinen Lehrling +Software Tester (m/w) +IT Experten(in)/Techniker(in) - Verwaltungspraktikum (für 12 Monate) +Ferialpraktika für Jugendliche +Begeisterter Problemlöser (m/w) +Junior Software Engineer C#, .NET (M/W) +Junior Software Test Engineer (M/W) +Verwaltungspraktikum +Praktikum Kostümbildner/in - Bühnen/Maskenbildner/in +iOS / Android Programmierer/in +Junior Software-EntwicklerIn +Design Manager (m/w) +ProjektleiterIn Veranstaltungen +Großhandelskaufmann/ -frau Lehrling +Junior CRM Projektmanager (m/w) +Junior Software Engineer (m/w) +Diverse Lehrstellen +Lehrstelle Installations- und GebäudetechnikerIn +Lehrlinge für IT-Technik (m/w) +Verwaltungspraktikum - auch im Rahmen des Zivildienstes +KEY ACCOUNT MANAGER (W/M) +PRODUKTDESIGNER / PRODUKTENTWICKLER (W/M) +MITARBEITER ARBEITSVORBEREITUNG UND KALKULATION (W/M) +PLANUNG INNENARCHITEKTUR (W/M) +PROJEKTEITUNG INNENARCHITEKTUR (W/M) +EDV-Betreuer/in am Institut für Geographie und Regionalforschung +Frontend Developer (html/css/js) +Innendienstmitarbeiter (m/w) +EDV-Techniker +Software Entwickler/in +Junior EntwicklerIn (m/w) +EDV MitarbeiterIn +Informatiker/in im Bereich Militärpsychologie +Mobile Web-Developer (m/w) +Lehrberufe: ElektrotechnikerIn-Elektro- und Gebäudetechnik, TierpflegerIn +Web-DeveloperIn (auch Junior) für TYPO3 und/oder Magento +Allrounder(in) für den Bereich Installation / Help Desk +Junior Cloud Solution Engineer +PHP Entwickler/in +Junior-Software Entwickler C#.NET / Java (m/w) +Kundenservice / Junior-Software Entwickler Java (m/w) +Web Developer (m/w) +Webprogrammierer_in (Vollzeit) +SAP Junior Software Engineer (m/w) für Digitalisierungsprojekte +Senior Web-Developer (m/w) +Software Architect für Druck- und digitale Applikationen im Transaktionsdruck (m/w) +IT Junior Consultant (m/w) +Junior Developer (m/w) im Java und Versicherungskonzern-Umfeld +FERIALSTELLE IT August 2017 +Product Owner/Junior Projekt Manager (m/w) +ProduktentwicklerIn +Internship Software Engineering +Software Developer in Test +FERIALSTELLE IT +ORACLE Entwickler/in +Organisation +Nachrichtentechniker (m/w) +Software Quality Engineer - Junior (m/w) +Junior/Senior Produkt Specialist im Technischen & Advanced Produkt Support 24/7 (m/f) +Projektleitung Innenarchitektur (w/m) +Abteilungsleitung IT-Management & Services für den neu gegründeten Bereich "Markt / Kunde" +Junio IT Support Inbound (m/f) +Technical Client Support (m/w) +Engineer (w/m) im Bereich Ökostrom +Junior Digital Campaign Manager & Data Analyst (M/W) - Vollzeit, 40 Std. +NETZWERKTECHNIKER / -INNEN +Außendienst Servicetechniker/in und Innendienst Servicetechniker /in (m/w) +Database Assistant +FerialpraktikantIn +Business Analyst im Banken- oder Versicherungsumfeld (m/w) +Junior Projekt Manager IT-­Rollout (m/w) +Junior Application Manager (f/m) +Mitarbeit in der Umsetzung von Webprojekten (m/w) +IT Solution Architect (m/w) +Technische Expertin/Technischen Experten im Mobilitätsumfeld +Head of Software Development (m/f) +(Junior) Software Entwickler (m/w) +C#/.NET Entwickler/in +EINSTEIGERPOSITION ALS MASCHINENTECHNIKER (M/W) +Web Developer HTML5/ Javascript/CSS3 (m/w) +Software Engineer im Bereich C++, C# und .net (m/w) +Software Engineer im Bereich Java & WebServer (m/w) +Junior IT-Administrator (m/w) +Junior Entwickler (m/w) +Wissenschaftliche/r Mitarbeiter/in (Voll- oder Teilzeit, befristet auf max. ein Jahr) +Programmiererin/Programmierer +Java-Programmierer (m/w) +Software Entwickler C#.NET / WPF (m/w) +Web- & Mobile-Developer (m/w) +Software Entwickler JAVA (m/w) +1st Level Application Support Engineer (M/W) +Junior Software Engineer C#.net (m/f) +Junior Software Test Engineer (m/f) +Junior Test Manager (m/w) +NetzwerkanalytikerIn (VZ) +Lehrstellen +Technical Support Engineer - Technical Consultant / Produktmanagement UTM-/NG-Firewalls / IT-Security Produkte / WLAN +Technischer Support / Produktmanagement UTM-/NG-Firewalls / Security Produkte / WLAN +Junior SAP Developer (MII) (w/m) +Software-Entwickler PHP (m/w) +Lehrstellen Verwaltungsassistentin/Verwaltungsassistent 2018 +HTL Absolventen Traineeprogramm (w/m) - IT Schwerpunkt +SQL-Datenbank-Spezialist (m/w) +Customer Integration Consultant (m/w) +Content Data Analyst (m/w) mit Liebe zum Detail +Junior Produkt Spezialist im Technischen 2nd level Support 24/7 (m/f) +Software Entwickler(In) - Web +Diverse offene Stellen in Wien und Graz +Trainee Infrastructure und Application Services (m/w) +Trainee IT Systemanalyst (m/w) +Trainee Controlling (m/w) +Techniker/in am Institut für Geographie und Regionalforschung +Lehrstellen in der Mechatronik +Projektkoordinator im Bereich Functional Garments +Junior IT-Consultant / System-Administrator +IT-Techniker im Onsite Support (w/m) +IT Anwendungsbetreuer/in +JAVA Software Entwickler (m/w) +Technical System and Network Administrator (m/w) +IT System Specialist (m/w) +Software Developer Java/JavaScript (m/w) +Web Designer / Web Developer (m/w) +DWH Entwickler - auch Teilzeit (m/w) +Frontend Entwickler (m/w) +Junior Software Solution Engineer (m/w) +VTP Specialist (f/m) +.NET Data Engineer C#/SQL +Praktikantin/en im Einkauf (m/w) +AssistentIn/SachbearbeiterIn im Einkauf (m/w) +Technical Engineer (m/w, 24-32 Stunden/Woche) +Projektleiter (m/w) für die Produktentwicklung +designer - 3d artist +IT Requirements Engineer (m/w) +Junior Agile Coach/Scrum Master (m/w) +Systemorganisator/in Schwerpunkt Netzwerk, IT-Sicherheit, Virtuelle Infrastruktur +HTL-AbsolventIn im Customer Support +ProduktionsplanerIn für Elektronikproduktion +Multimedia Assistent/in +Applikationsentwickler/in Oracle SQL*Plus, Java, C++ +Junior Systemtechniker (w/m) +Trainee (m/w) Vertrieb IT +(Junior) IT-Consultant (m/w) ITMS helpLine +(Junior) Consultant (m/w) Financial Management anafee +IT-Consultant / Application Manager Institutional Clients & Fund Services (m/w) +SPS-/NC-Programmierung +IT-Techniker(in) / IT-Kaufmann für den Bereich Installation / Helpdesk +Systemadministrator (m/w, Vollzeit) +MitarbeiterIn für Fotoanfertigung, -bearbeitung und Grafik +Ruby on Rails DeveloperIn (M/W) Teilzeit +Küchenberater/Monteur (m/w) +Lehrstelle KAROSSERIEBAUtechnikerIn +Lehrstelle ELEKTROtechnikerIn +Lehrstelle KFZ-technikerIn +Lehrstelle BÜRO-GROßHANDELS-kaufmann/frau-IT-informatik +IT Web Developer-PraktikantInnen gesucht! +FERIALPRAKTIKUM im SOMMER 2018 +Lehrstelle IT Techniker +Ferialpraktikum Sommer 2018 +Fullstack Developer für Webprojekte (m/w) +IT-Experte/in +VBA/Office-Spezialisten mit Administratortätigkeit +Grafiker/in für Multimedia Grafik +SCHNITTASSISTENT / IN +Mitarbeiter/in Werbeagentur (fixe Anstellung, Praktika, Volontäre) +GeoInformatikerIn +System-Administrator/-in +TECHNISCHE NACHWUCHSKRAFT (M/W) +TECHNISCHE NACHWUCHSKRAFT (M/W) Applikationsbetreuung / Software-Lösungen Gesundheitswesen +Software Entwickler (m/w) +MITARBEITERIN/MITARBEITER im Bereich Softwareentwicklung Eisenstadt - Vollzeit +MITARBEITERIN/MITARBEITER im Bereich Softwareprogrammierung Eisenstadt - Vollzeit +JungjournalistInnen +Applikationsingenieur (m/w) +Mechatroniker (m/w) +SPS Softwareingenieur - HTL Absolvent (m/w) +App Developer +Lehrstelle: Informationstechnologie, Archiv-, Bibliotheks- und InformationsassistenIn, Installations- und GebäudetechnikerIn - Heizungs- und Lüftungstechnik +Junior SAP Software Developer +Server Administrator (w/m) +Junior Frontend Entwickler (m/w) +SAP (JUNIOR) SOFTWARE ENGINEER (m/w) +CAD-Techniker/E-Planer/in für den Bereich Elektrotechnik und Sicherheitsanlagen +Elektro-Monteur/in für Einsätze in Wien, NÖ, OÖ und Sbg. +Lehrling für Elektroinstallationen und Gebäudetechnik +Junior Web Developer (m/w) +Full Stack Developer Java (m/w) +Junior Application Engineer (m/w) +ASSISTENZ PRODUKTMANAGEMENT AKTIVE BAUTEILE +VERKAUF INNENDIENST JUNIOR PRODUKT MANAGER PASSIVE BAUTEILE +IT-Support +Lehre Lebensmitteltechniker/in +Lehre Bürokauffrau/-mann +Lead Techniker ELA (m/w) +Senior Tester mit Erfahrung in der Testautomatisierung (m/w) +Software Engineer für Inbetriebnahme (m/w) +Software Tester mit Java Kenntnissen (m/w) +DB-Professional oder Berufseinsteiger (m/w) mit Know-how, DATENBANKENTWICKLER/IN - MS SQL +Lehrstelle Starkstromtechnik und Anlagenbau +Mitarbeiter/-in für den technischen Support +IT Systems Engineer +IT Junior Systems Engineer +Fondsreporting Mitarbeiter (m/w) Junior +HCM Associate Consultant (m/w) +Software Developer/in +Developer (m/w) Web-Development +Junior IT Project Manager (m/f) +Tricentis Internship - Consulting (m/f) +Java und Web Software Developer/in +Fullstack Developer (w/m) +Junior Systemadministrator +SENIOR SYSTEMS ANALYSTS (m/w) +Fachbed.techn.Dienst / Technische Sachbearbeitung spezialisiert +Systemadministrator_in +Junior Systemadministrator (m/w) +PROPERTY SERVICE COORDINATOR (M/W) +JOBANGEBOTE für das SHUTDOWN FESTIVAL 2018 +Project Office MitarbeiterIn +Software- & Web-EntwicklerIn +Trainee: Digital Expert (w/m) +Trainee: SAP Consulting & Development (w/m) +Trainee: JAVA Development (w/m) +Trainee: Projektmanagement (w/m) +Junior IT Consultant (m/w) +Software Quality Engineer (m/w) +Junior Developer (m/w) Tax Technology +Praktikant/in aus Kunst-&Design +Junior&Senior PHP Entwickler (m/w) +Junior&Senior Java Entwickler (m/w) +Junior IT Betreuer (m/w) +APPLICATION SUPPORT HERO (M/F) +HTL-Absolventen/in mit Erfahrung und XML-Kenntnissen - Digital Publishing +Klinischen und Technischen Support - Medizintechnik +Praktikum Encoding (6 Monate) +Web-Developer (Werkvertragsbasis) +Mitarbeiter Help Desk +Servicetechniker/in (f/m) +IT-TechnikerIn / ProgrammiererIn (f/m) +Web-Entwickler / Software Entwickler +IKT-ReferentInnen +CutterIn mit Animations-Kenntnissen (m/w) 40h/Woche +Junior Motion Designer (m/w) 40h/Woche +HCM Implementation Associate (m/w) +Ferialpraktikant (m/w) für den Bereich IT SupportVollzeit, Juli -August 2018 +Fullstack/Frontend Javascript Developer +Netzwerkbetreuung / Support / Datenbanken +Junior IT-Security Analyst (m/w - Vollzeit - Wien) +HTL Absolventen/IT Softwareentwicklung +Java Web Developer (m/w) in Wien +Java Web Entwickler für unser Partnernetzwerk (m/w) in Wien +Softwareentwickler_innen für Forschungsprojekte (m/w, Vollzeit oder Teilzeit) +Data Warehouse Engineer (m/w) +Junior Consultant/Berater (m/w) +Junior Projektentwickler (m/w) +Software Developer/in (m/f) +Junior Drupal Backend Developer (m/w) in Wien +Junior Drupal Frontend Developer (m/w) in Wien +IT-Mitarbeiter (m/w) +IT-Support Mitarbeiter/in +Techniker (m/w) +Junior SAP HCM EntwicklerIn +Systemadministrator im Web-Portalumfeld (m/w) +HTL AbsolventIn mit Schwerpunkt Informationstechnologie +Webdesigner, Content Manager +Sachbearbeiter für den technischen Bereich (w/m) technischer Verkauf +Junior Oracle Datenbank Administrator - ABSOLVENTEN HTL SPENGERGASSE +Elektrotechniker/in +Full-Stack Web Developer (PHP / Javascript) +Mitarbeiter/in IT - 1st Level Support - 40h +Videoproduktions-Assistent Vollzeit +it-mitarbeiter/in +IT Administrator/ Applikationsmanager (m/w) +(Junior) IT-Mitarbeiter bzw. Absolvent HTL / Fach-hochschule EDV & Informationstechnologie m/w +MitarbeiterIn im Bereich EDV (Vollzeit - 40h) +(JUNIOR) APPLIKATIONSBETREUER (M/W) Software-Lösungen Gesundheitswesen +CAD ZeichnerIn +MITARBEITER/INNEN IM BEREICH SOFTWAREENTWICKLUNG, SCHWERPUNKT OBJEKTORIENTIERTE PROGRAMMIERUNG (FOKUS JAVA) Eisenstadt - Vollzeit +Junior Programmierer (m/w) +Junior System-/Netzwerkadministrator (m/w), Standort 1220 Wien +Blockchain & Software Entwickler (m/w), Standort Wien und Klagenfurt +Security Consultant (m/w), Standort 1220 Wien +GrafikerIn +Technische/r Zeichner/in +Praktikum im IT-Support (m/w) +Karriereeinsteiger im Bereich Analytics & Consulting / Marktforschung (w/m) +SOFTWARE TESTING CONSULTANT (M/F) +Stellenausschreibung für eine technische Mitarbeiterin/einen technischen Mitarbeiter Institut für Mikroelektronik +Solution Engineer Cloud Platform (m/w) +Technische Hilfe +Systemtest, Validierung m/w - (10 Wochenstunden) +Database Engineer (m/w) +Front End Developer (m/w) Deloitte Digital +Junior Software Entwickler (m/w) für Digitalisierung, Automatisierung und Robotics Vollzeit oder Teilzeit +Verwaltungspraktikant/in für den Bereich IKT, Abteilung Applikationsarchitektur und Entwicklung +Underwriter (m/w) Haftpflicht Industrie mit Schwerpunkt Cyberversicherung oder IT-Versicherung +IT Support(m/w) +IT Mitarbeiter/in +System Engineer (m/w) +Product Manager Medizintechnik m/w +MITARBEITER/INNEN IM BEREICH DESKTOP MANAGEMENT - SCHWERPUNKT IT HELPDESK SUPPORT Eisenstadt - Vollzeit +Software Entwickler(In) - Windows Programmierung +Karenzvertretung im Sozialbereich +IT Solution Architect +IT System Administrator / Techniker (m/w) +Einstiegsjob für HTL- bzw. Fachschul-Absolvent/in (JUNIOR) APPLIKATIONSBETREUER (M/W) Software-Lösungen Gesundheitswesen +Mittelständisches Unternehmen (JUNIOR) IT SALES & KUNDENBETREUER (M/W) Krankenhaus IT - Medizinische Applikationen +Art Director (m/w) +IT System Administrator (m/w) +IT Support Engineers (m/w) +APPLICATION MANAGER M/W +EDV-ProgrammiererIn +Frontend-Full-Stack-Entwickler (w/m). Development / Digitalisierung. +SENIOR DEVELOPER (m/w) .Net und Microsoft CRM +DEVELOPER (m/w) .Net +IT PROJECT MANAGER - 20 STUNDEN/WOCHE +Offene Lehrstellen: ElektrotechnikerIn, Bürokaufmann/-frau, Installations-und GebäudetechnikerIn +Technician (m/w) im Bereich Digital Health Information Systems (Wien) +IT Requirements Engineer / Business Analyst (m/w) +Tester (m/w) +Zivildienst-Angebot +Junior SAP-ABAP-Developer - Fokus SAP FI (m/w) +Junior IT-Consultant +IT Dienstleistung - GIS +IT Dienstleistung - Java +IT-ApplikationsbetreuerIn/BenutzerbetreuerIn 20 Stunden - Befristung 1 Jahr +Backend Entwickler (m/w) +Full Stack Entwickler (m/w) mit PHP Knowhow +EDV-Technikerin/Techniker oder EDV-Kauffrau/Kaufmann (begonnene oder abgeschlossene Lehre) +Teilzeit Back-Office Mitarbeiter/In +HTL Absolvent (m/w) - Schwerpunkt Microsoft Infrastruktur +SAP Consultant im Bereich neue Technologie (SAP Cloud, S/4 HANA & IoT) +PraktikantIn Softwareentwicklung (12 Monate, Standort: Wien) +IT-Administrator m/w +C#-PL/SQL-Developer (w/m) +Technisch versierte/n Marketing Mitarbeiter/in +Offene Positionen Wien-Premstätten/Graz +Kundenservice in Portugal (6 Monate, 1 Jahr, Verlängerungsmöglichkeit) +Leitung IT-Bereich/Systemadministration +Full Stack DeveloperIn +SoftwareentwicklerIn +Referenten/in (A 2/2) "Geophysikalische Grundlagen und Präzisionsnivellement" +Junior Netzwerk- u. Systemadministrator/-in +Systems Engineer, Vollzeit/Teilzeit +Inspektionstechniker/in für medizinische Geräte und elektrische Anlagen in der Medizintechnik +Inspektionstechniker für elektrische Anlagen in der Medizintechnik +Betreuer (w/m) IT-Security +IT-SYSTEMADMINISTRATOR/IN (Vollzeit) +Frontend Developer (m/w) +MEDIZINTECHNIKER (m/w) +IT-Systembetreuer/in im Cluster BG und BRG Schwechat +Sommerpraktikum Software Engineering (m/w) +Lehrstellenangebote +IT-APPLICATION MANAGER (M/W) +Verkauf Innendienst/Inside Sales +Field Application Engineer Wireless (m/w) +BUSINESS TECHNOLGY SYSTEMS CONTRACTOR +MITARBEITER/IN für unser Datenmanagement Vollzeit 40 Stunden +Berufspraktikum - Webentwicklung +?Get Active? ? Werde die Stimme deiner Generation! +BloggerInnen gesucht! +Lehrstelle für Geoinformationstechnik +Wissenschaftliche/n Mitarbeiter/in Digitalisierung (Voll- oder Teilzeit, für max. 12 Monate befristet) +Service-TechnikerIn (im Bereich Telekommunikation und Unified Communication) +TechnikerIn für Produktmanagement/Support (Sicherheits-,Kommunikations- und Gebäudetechnik +CAD-TechnikerIn (Sicherheitstechnik) +Service-/SystemtechnikerIn +IT-Techniker (Teilzeit ca. 20 Std.) +MitarbeiterIn Leit-/Fernwirktechnik +IT-Trainee (m/w) +Service Desk Engineer (m/w) +Designer/in oder Technische/r Zeichner/in +Lehrstelle ElektrotechnikerIn - Elektro- und Gebäudetechnik +Lehrstelle MetalltechnikerIn - Maschinenbautechnik +Produktentwickler (m/w) +GIS-Techniker/-in +Diplomprojekt +Digital Creative - Juniors&Seniors (m/w) +Senior Systems Engineer (m/w/x) IT Support +CHEMIELABORTECHNIKER/IN +Werkstudent .NET Development (m/w) +MitarbeiterIn Disposition +Technical Support ManagerIn +Software-Entwickler(in) +Elektrotechniker(m/w) - Schaltschrankbau für Sondermaschinen +IT-Application Specialist (m/w) +Techn. Innendienst +Offene Positionen, Sommerpraktikum +MitarbeiterIn Abfall- und Reststofflogistik +Informationsveranstaltung der Wiener Polizei +IT Service Operator (m/w) +LeiterIn Betriebsabwicklung U-Bahn +AnalytikerIn/Software Engineer +Ausbildung zum SAP Programmierer (m/w) für Digitalisierungsprojekte +Junior Java-Software-Entwickler (m/w) +Ferialpraktika im IT Bereich +Lehrling (m/w) Applikationsentwicklung & Coding +Lehrling (m/w) Informationstechnologie - Systemtechnik +Product ManagerIn Data Services +Data Science DeveloperIn +Lehrstelle Elektrotechniker/-in +Internship Customer Success Management Support (f/m) +Sachbearbeiter/in für die technische Hausverwaltung +Student/in für die Gruppe Operations (Teilzeit 20h/Woche) befristet 1 Jahr +City Visual Merchandiser Louis Vuitton +Praktikumsstellen mit Schwerpunkt IT (4-wöchig) +Praktikumsstelle mit Schwerpunkt IT - Fachbereich EDV-Labor (4-wöchig) +Praktikumsstelle mit Schwerpunkt IT - Fachbereich Campus Software Development (4-wöchig) +Webdeveloper (m/f/d) Backend +FerialpraktikantIn im August 2019 Abteilung IT und im Qualitätsmanagement +LeiterIn Störungsmanagement +Praktikum Software Engineer - 3-6 Monate +Consultant Rechnungswesen (m/w) +Qualitätssicherung (m/w) +Praktikum Sommer 2019 - MINT-Robotik-Camps +LeiterIn Infrastruktursteuerung +HTL Ferialpraktikant - Bereich Infrastructure/Operations +Junior Developer SAP ABAP (m/w) +ABAP DEVELOPER (m/w) +IT Requirements Engineer/Business Analyst (m/w) +Windows Server Administrator (m/w) +ABAP OO Junior Entwickler Ferial-/Teil-/Vollzeit +SAP UI5/JavaScript Junior Entwickler Ferial-/Teil-/Vollzeit +Videografin/Videograf +Junior IT Infrastructure Administrator (w/m/d) +Mitarbeiter Digitale Medien (m/w) +PHP Developer m/w +Mitarbeiterin bzw. Mitarbeiter Anwendungsentwicklung +Software Entwickler (w/m/d) +IT SUPPORT MITARBEITER/IN +Systemarchitekt_in Linux Teilzeit 20 Std./ Woche, befristet 1 Jahr (Ersatzkraft) +Systemarchitekt_in Server- und Storagesysteme Vollzeit +(Junior) IT Mitarbeiter im 1st/2nd Level Support (m/w) +INTERNAL SOFTWARE SUPPORT (m/w/x) +Business Developer/-in mit Interesse für das Gesundheitswesen +Junior Software Engineer (m/w/x) +C# Entwickler/-in mit Interesse für das Gesundheitswesen +Junior Linux Systems Engineer +Junior Cognos Consultant (m/w) +IT-Administrator/Administratorin im Bereich IT-Infrastruktur +CARRIER AND INTEGRATION MANAGER (M/W) +Mitarbeiter RV-Vertriebstechnologie (m/w) +IT-Administrator (w/m/x) +Mitarbeiter/in IT-Support +Dev/Op Engineer*in +C#/.NET Entwickler*in +IT-Tester*in +Mitarbeiter*in IT Support +Senior Web Entwicklung .Net (m/w/d) +Engagierte(r) .NET ProgrammiererIn für Software-Entwicklung +Sachbearbeiter/in im Datenmanagement mit Schwerpunkt Datenbanken +Berufspraktikant/-in Repairshop (w/m) +Datenbanktechniker/in für SQL und BI (m/w) +Fullstack/Frontend Developer (m/w) +Ferialjob MediaWiki Programmierung (PHP) +Klinischen/Technischen Support - Medizintechnik Ostösterreich bzw. Westösterreich +Junior Consultant IT Service Management (m/w) Teilzeit ab 25h/Woche Standort: Wien +EntwicklerIn Front-/Backend (Teilzeittätigkeit neben Studium/Schule) +Lehre zur/zum E-Commerce Kauffrau/-mann (m/w) +IT- Trainer (m/w/d) +IT Business Support Specialist (m/f) (Location: Vienna) +Engagierte(r) Mitarbeiter/In für den Betrieb einer Cloud Plattform Teilzeit/Vollzeit +Systemtechniker/in mit Schwerpunkt Broadcast IT 40 Wochenstunden) +Junior Software Entwickler (w/m/d) +IT Support Engineer (w/m/d) +HTL-Absolventen/in +DeveloperIn für Großanlagenapplikationen ? Bereich Personalverwaltungssysteme +Junior IT-Support (m/w) +Angestellten in der Dienstleistungseinrichtung Center for Teaching and Learning +Expertin oder Experten für IT +Mitarbeiter/in Quality Engineer (m/w) +EMBEDDED SOFTWARE DEVELOPER (m/w/x) +HTL - TechnikerIn mit Schwerpunkt Informationstechnologie +Bezahltes Praktikum (Kollektionserstellung/Einkauf) +HTL - TechnikerIn mit Schwerpunkt Informationstechnologie +Technical Support Hero (m/f) +IT-Mitarbeiter/in im Bereich Entwicklung/Support +Jungprogrammierer (PHP / Javascript) +IT-Applikationsbetreuer/in Vollzeit (100%) +Technische Assistentin / technischer Assistent +MitarbeiterIn First-Level-Support Vollzeit, Dienstort: 1030 Wien +LeiterIn Beschaffung Schienenfahrzeugteile +iOS Developer (m/w) +SAP Inhouse Consultant (m/w) +Linux Netzwerk und System Administrator (m/w) +(Junior) Datenbankadministrator (m/w) +(Junior) Linux Systemadministrator (m/w) +Sommerpraktikum IT Abteilung +Agile Software Tester (m/w/d) +Trainee - IT Consultant (m/w/d) +Softwareentwicklung und Projektmanagement +Solution Architect (m/w) +MitarbeiterIn Second-Level-Support +IT Administration Linux +Software Entwickler/-in +Systemintegrator +Junior TesterIn Web & Mobile Apps (VZ/TZ) +Ne(W)ave-Projekt Green Skills für ElektrikerInnen und InstallateurInnen +IT-Techniker +Mitarbeiter IT-Support Wien (m/w) - Geringfügige Anstellung +Scrum Master (m/w) +Projekt PortfoliomanagerIn +IT-Trainer/innen (20 - 40 Std./Woche) +Junior DeveloperIn Full Stack +DevOps Engineer (m/w) +Lehrstelle Metalltechniker/in - Zerspanungstechnik +Lehrstelle IT-Systemtechniker bzw. IT-Systemtechnikerin +System Spezialist/in +Softwareentwickler/in 20 Std./Woche +Support Mitarbeiter (w/m) Software Produktionsplanung (Vollzeit) +Junior SAP EntwicklerIn +Junior ECM Software & Solution Spezialist (m/w) +IT Administrator (w/m) Vollzeit (40 Stunden) +GIS Data Analyst (m/w) +Business Consultant Web (m/w) +MitarbeiterIn - digitale Lösungen +Java Entwicklung/Consulting (w/m/x) +IT-Administrator (m/w/d) technischer Hardware- Support auf Basis geringfügiger Beschäftigung +IT-Systemadministrator_in +Systemadministrator_in Webservices (Teilzeit, 30 Std./Woche, befristet auf 2 Jahre) +UI & UX DesignerIn Teilzeit (20h) +Haustechniker_in im Facilitymanagement +Zivildienst-Stelle +Lehrstelle Starkstromtechnik und Anlagenbau (für Schulabbrecher) +Produktmanager (w/m/d) +HTL-BautechnikerIn Oberbautechnik - Fahrweg +IT-Supporttechniker/in +Web-Applikationsentwickler/in +VERBUND-Traineeprogramm für SAP-Berufseinsteiger (w/m/d) +Vertriebsingenieur (w/m) +Software Entwickler C# (w/m) +HTL Absolventen (w/m) für Traineeprogramm (IT-System Engineering) +Technische Absolventen (w/m) +Fullstack Web Entwickler (m/w/d) +Produktentwickler/ Designer (m/w/d) Fachsortimente +Ferialpraktikum in der Magistratsdirektion für Personal und Revision +IT LOGISTIK SUPPORT m/w (Vollzeit 40 Std) +Mitarbeiterin bzw. Mitarbeiter mit profunden IT-Anwenderkenntnissen +Financial Software Engineer (f/m/d) Entry-Level Position, (100%) +LeiterIn Personaldisposition +SOFTWARE TESTER (M/W/D) +Fachliche Assistenz der Leitung Disposition (m/w) +Berufspraktikum - Softwareentwicklung +Software Entwickler(In) - Web / .NET +Technischer Innendienst +Ferial-Praxis Sommer 2020 +Trainee/Praktikant (w/m/d) im Design +ABTEILUNGSLEITUNG DESIGN (M/W/D) +PHP-/Fullstack-Developer (m/w) +Specialist IT Support/Workplace (m/w) (Vollzeit) +Lehrling Bürokauffrau/-mann +Lehrling Brau- und Getränketechniker/-in +Lehrling Mechatroniker/-in +Lehrling Prozesstechniker/-in +Mitarbeiter/in Bereich EDV - 15 Wochenstunden +Lehrberuf Vermessungstechnikerin bzw. Vermessungstechniker +Lehrberuf Geoinformationstechnik +Anwenderbetreuer/in IT Healthcare +Offene Lehrstellen - Ausbildungsstart September 2020 +IT System Administration (Vollzeit) +Junior Daten-/Prozessmanager/in +Full Stack Developer(in) +MitarbeiterIn im Lizenmanagment Team +Berufseinsteiger - Applikationsbetreuung (w/m/x) +Doppellehrberuf Elektrotechnik +Lehrlinge: IT - Systemtechnik +Softwareentwickler_in +Software Developer fulltime (f/m) +Benutzerbetreuerassistent +Systemoperator +Systemoperator Arbeitsvorbereitung +Junior Software EntwicklerIn / Full Stack Developer 40h +Junior IT-Security Officer mit Drive für spannende Themen im Bankenbereich m/w +Einrichtungsplaner (m/w/d) +IT Allrounder +IT Servicedesk Mitarbeiter m/w/d (Vollzeit) +Junior Software Developer m/w/d (Vollzeit) +Junior Software Project Manager m/w/d (Vollzeit) +Junior Software Tester m/w/d (Vollzeit) +Junior Software Test Automation Engineer m/w/d (Vollzeit) +Research Engineer Internet (w/m/d) +DevOps & IT Infrastruktur +Duales Studium Bachelor mit Schwerpunkt Informatik +Trainees - Berufseinstieg mit technischem Fokus +IT-Praktikant (w/m/d) Vollzeit oder Teilzeit +HTL Techniker (m/w/d) +Softwarebetreuung - Administrationsbetreuung (m/w/d) +IT-ALLROUNDER MIT SQL-DATENBANKEN-KENNTNISSEN (M/W/D) +Support Analyst - Wien, Österreich +SW- Programmierer C,C++ (m/w) +Senior SoftwareentwicklerIn Testautomatisierung +Junior SAP FI/CO Inhouse Betreuer (m/w/d) +Lehrgang Remote Work IT-Essentials +Praktikum als PHP & Frontend-Entwickler*in (m/w/d) +Ausbildung zum(r) IBM-Serverarchitekten/-architektin +Lehrstelle - Konstrukteur/Schwerpunkt Elektrotechnik +Programmierer/in (30/40 Std.) +Junior IT-Consultant, FrontEnd WebEntwicklerIN +Junior IT-Consultant, Java (Web-)EntwicklerIN +Lehrstelle ElektrotechnikerIn - Energietechnik +Junior IT Projektmanager (m/w/x) +Junior IT Support Mitarbeiter m/w/x +IT Support Administrator_in +Junior LizenzmanagerIn +Praktikant/in im Back-Office (m/w/d) +Lehrstelle Informationstechnologie/Technik +Praktikant/in Produkt- und Imagefotografie (m/w/d) +Praktikant/in Social Media Marketing (m/w/d) +Diplomprojekt - Ferialpraxis +Cyber-Grundwehrdiener +IT-Security Expertinnen/Experten +Digital Creative (m/w/d) +Softwareentwickler / Softwareentwicklerin +Unity Entwickler für AR/VR (m/w) +Prozess Manager (m/w/d) +Software-Entwickler C#/Delphi/VB.net (m/w) +HPC System and Storage Architect (m_w) +JUNIOR IT CONSULTANT +Junior Application Specialist (w/m/d) mit Schwerpunkt Web +Web-EntwicklerIn (m/w/d) +IT-ADMINISTRATOR*IN +Qualitätsmanagement (m/w) +Lehrling Informationstechnologie (w/m/d) +Junior Web-Developer +Systemadministrator/in - Karenzvertretung +Software-ProgrammiererIn +Lehrstelle Bürokaufmann/Frau +Lehrstelle Koch*Köchin +Lehrstelle Verwaltungsassistent*Verwaltungsassistentin +CAD-Techniker/E-Planer/in Bereich Elektrotechnik und Sicherheitsanlagen +Elektro-Monteur/in +ServicetechnikerIn für Sicherheitstechnik +TechnikerIn mit Vertriebserfahrung Bereich Erneuerbare Energie +VertriebsassistentIn +IT Service Manager (w/m/d) +JUNIOR SOFTWARE ENTWICKLER (M/W) +Technischer Consultant ITSM (w/m/d) +Software Developer 100% (m/f/d) +Mitarbeiter Qualitätssicherung & Wareneingangskontrolle (m/w/d) +Verwaltungspraktikum "Software Engineer / Data Engineer" +Junior JAVA Development - Webanwendungen und Webservices (w/m/d) +IT-Allrounder Teilzeit 20 Wochenstunden +Linux SystembetreuerIn im Bereich NT (m/w/d) +Lehrberuf Installations- u. Gebäudetechniker +Junior Software Engineer (m/w/d) im Bereich Electric Drive Technologies +SAP© JUNIOR DEVELOPER & CONSULTANT - TRAINEE (m/w) VOLLZEIT +MitarbeiterIn IT-Demand-Management (w/m/d) +Systemadministrator (M/W/D) +Softwareentwickler +eGovernment Experte/Business Process Manager (m/w/d) +eGovernment Systementwickler und Systemadministrator/Business Process Engineer (m/w/d) +IKT Koordinator (m/w/d) +Senior Web Developer/Webdesigner (m/w/d) +Junior Sales Specialist DELL EMC (w/m/d) +Junior IT-Mitarbeiter (m/w/d) +Senior ProjektmanagerIn Glasfasertechnologie (w/m/d) +Retail IT Manager VOLLZEIT +Junior Full-Stack Developer for Wiener Health-Tech Startup +Trainer_innen Softwareentwicklung & Netzwerktechnik (Vollzeit oder Teilzeit) +Technische*r Mitarbeiter*in +Lehrberuf Betriebsdienstleisterin*Betriebsdienstleister +Lehrberuf Informationstechnologie +Lehrberuf Applikationsentwicklung - Coding +Lehrstelle Betriebslogistikkauffrau/-mann (w/m/d) +Marketing Freelancer (m/w/d) +VERWALTUNGSPRAKTIKUM - "SOFTWARE DEVELOPER / DATA ENGINEER" +JumpIN - Unser Karriereprogramm für HTL Absolventen*innen (m/w/d) +Junior/Senior Linux-SysAdmin (m/w/x) +Java Entwickler (m/w/d), Wien +SAP ModulbetreuerIn (PM&CS) (m/w/d) +Abteilungsleitung Kommunikationstechnik & IKT-Service(w/m/d) +IT-TestmanagerIn - Meter Operation Gas (m/w/d) +Software Engineer / Data Engineer (m/w) +Technician at the Department of Meteorology and Geophysics +Mitarbeiter/in IT 1st und 2nd Level Support +Web- und Applikationsentwickler (m/w/d) +System Engineer / Software Engineer (m/w) +IT Operations Manager (f/m/d) +Anwendungsentwickler ERP (m/w/d) +Support Mitarbeiter (m/w/d) +IT-Techniker (m,w,d) +Java Entwickler DMS mind. 2 Jahre Erfahrung (m/w/d) +Java Entwickler Aktivgeschäft mind. 2 Jahre Erfahrung (m/w/d) +Software Engineer mind. 2 Jahre Erfahrung (m/w/d) +Software Engineer Online Banking mind. 2 Jahre Erfahrung +Biomedizinische/r Analyst_in / Technische/r Assistent_in (40 h) +IT-Allrounder (w/m/x) +Data Science Cloud Engineer (m/w) +JUNIOR IT CONSULTANT (W|M|X) +PROJECT & ACCOUNTMANAGER (W|M|X) +Technical Consultant / Developer +ITSM/SIAM DigitalisierungsexpertIn +Content Marketing +Applikationsmanager (w/m/d) DevOps Engineer IT +Junior ApplikationsbetreuerIn (w/m/d) +JAVA Development Full Stack (w/m/d) +Junior SAP Consulting & Development - Business Intelligence (w/m/d) +Junior Applikationsmanagement Sozialministeriumservice - SMS (w/m/d) +Systemadministrator/Datenbank-Ingenieur (m/w) +SAP Customer Support Engineer (m/f) +Ferialpraktikant*innen gesucht +Customer Support Engineer (m/f) +Projekt Manager - Verfahrenstechnik (m/w/d) +Mechatronik / Maschinenbau / Anlagenbau (m/w/d) +Rollout Techniker (w/m/x) +IT-Testmanager - Meter Operation Gas +Software TesterIn für Smart Meter +Service ManagerIn SAP Reporting und Monitoring +Service ManagerIn EDM +Service ManagerIn Marktkommunikation +Lehre zur/m Informationstechnologen/-in +it-mitarbeiter helpdesk (m/w) +IT-Experte (w/m/d) Anwenderbetreuung +Junior Netzwerk- und Systemadministrator (m/w/d) +IT Spezialist/in +Lehrling Labortechnik Chemie +Software Developer (m/w/x) +AI Algorithm / Front End Developer +Cloud Data Architect / Database Developer +ExpertIn Photoshop-ExpertIn Illustrator +IT System Administrator (w/m/d) +Junior IT-Manager (m/w/d) 1st & 2nd Level IT-Support +ZIVILDIENSTSTELLE für die IT-Abteilung +Field & Customer Support Engineer +Junior Sales Manager (m/w/d) für medizinische IT +IT-Support (m/w/d) +LEHRSTELLE Personaldienstleistungsassistent +Junior Developer*in +ECDL-Trainer_in/Coach +Praktikum im Jahr 2021 (Home Office) +Junior Software Developer (m/w/d) +IT Praktikum (w/m/d) +Ferialpraktikant (m/w) im Logistikbereich +MOTION-GRAFIKER/IN TEIL- ODER VOLLZEIT +Werkstudent (m/w/d) Cyber Threat Hunter +Werkstudent (m/w/d) Malware Researcher +HTL-ABSOLVENT für die IT-Technik +MITARBEITER IT-SUPPORT & ADMINISTRATION M/W/D +IT Support (m/w/d +IT Support (m/w/d) +Junior Produktmanager (w/m/d) +Mitarbeiter/in im Master Data Management (m/w/x) \ No newline at end of file diff --git a/data/languages.txt b/data/languages.txt new file mode 100644 index 0000000..aa60224 --- /dev/null +++ b/data/languages.txt @@ -0,0 +1,105 @@ +Afrikaans +Albanisch +Amharisch +Arabisch +Armenisch +Aserbaidschanisch +Bengalisch +Bhutanisch +Birmanisch +Bislama +Bosnisch +Bulgarisch +Chichewa +Chinesisch +Dänisch +Dari +Deutsch +Englisch +Estnisch +Fidschianisch +Filipino (Tagalog) +Finnisch +Französisch +Georgisch +Gilbertesisch +Griechisch +Guaraní +Haitianisch +Hebräisch +Hindi +Indonesisch +Irisch +Isländisch +Italienisch +Japanisch +Kambodschanisch +Kasachisch +Katalanisch +Kirgisisch +Kirundi +Koreanisch +Kroatisch +Kurdisch +Laotisch +Lateinisch +Lettisch +Litauisch +Madagassisch +Malaiisch +Maledivisch +Maltesisch +Maori +Marshallesisch +Mazedonisch +Mongolisch +Montenegrinisch +Nauruisch +Ndebele +Nepalesisch +Niederländisch +Nordsotho +Northern Ireland +Norwegisch +Palauisch +Persisch +Polnisch +Portugiesisch +Rätoromanisch +Republika Srbija +Rumänisch +Russisch +Samoanisch +Sango +Schwedisch +Serbisch +Singhalesisch +Slowakisch +Somali +Sotho +Spanisch +Suaheli +Südsotho +Swasi +Tadschikisch +Tamilisch +Tetum +Thailändisch +Tigrinja +Tok Pisin (Neomelanesisch) +Tongaisch +Tschechisch +Tsonga +Tsuana +Türkisch +Turkmenisch +Tuvalu(isch) +Ukrainisch +Ungarisch +Urdu +Usbekisch +Venda +Vietnamesisch +Weißrussisch +Xhosa +Zulu \ No newline at end of file diff --git a/data/lastnames.txt b/data/lastnames.txt new file mode 100644 index 0000000..5abe0a0 --- /dev/null +++ b/data/lastnames.txt @@ -0,0 +1,2609 @@ +Dienstleder +Adler +Adler +Adlersflügel +Adlmannseder +Amtmann +Androsch +Afritsch +Angerer +Afritsch +Aichhorn +Anschober +Ansorge +Aichinger +Antoni +Aigner +Anzenberger +Apfelbeck +Aigner +Appel +Appel +Arbeiter +Alberer +Arthold +Aßmann +Astl +Auer +Auinger +Elisabeth Achatz +Austerlitz +Altenbacher +Altenburger +Ambrozy +Albrecht +Aman +Albrecht +Amlacher +Allina +Babanitz +Babitsch +Bacher +Bader +von Baechl +Bandion +Anton +Barmüller +Bartenstein +Bassetti +Bassetti-Bastinelli +Bauchinger +Bauer +Bauer +Bauer +Bauer +Breinschmid +Breiteneder +Breitner +Brennsteiner +August Bretschneider +Alfred Breuer +Bauer +Brinek +Bauer +Brinnich +Bauer +Broda +Bauer +Bauer +Baueregger +Baumgärtel +Baumgartner +Broesigke +Bayr +Bruckmann +Beck +Bednar +Brünner +Beirer +Benya +Brugger +Bergauer +Berger +Berger +Berger +Berger +Bergmann +Bergsmann +Berl +Bernkopf +Bernt +Beutlmayr +Beyer +Bezucha +Brunner +Brunner +Bichl +Bichler +Brunner +Bieler +Bieringer +Binder +Buchberger +Binder-Maier +Birbaumer +Birbaumer +Birchbauer +Buchinger +Bischof +Bisjak +Böhacker +Blaschitz +Blecha +Blenk +Buchleitner +Bleyer +Brandl +Büchler +Blöchl +Blümel +Buchner +Blünegger +Bocek +Bock +Buder +Bürkle +Bock +Bodirsky +Böck +Böck-Greissau +Bures +Bögl +Buresch +Böhler +Böhm +Böröczky +Bösch +Bösch +Bösch +Bogendorfer +Boschek +Burger +Brachmann +Burgstaller +Bramböck +Brand +Brandeisz +Burgstaller +Brandl +Brandl +Brandl +Burjan +Brandstätter +Braun +Brauneis +Busek +Bregartner +Bayer +Buttinger +Bechinie +Brunner +Brunauer +Cap +Ceeh +Cerny +Chaloupek +Christoph +Clessin +Crepaz +Czernetz +Czernin +Czerny +Czerwenka +Czettel +Czettel +Dallinger +Demuth +Ebenbichler +Danneberg +Dannereder +Danzinger +David +Eberdorfer +Dengg +Dengler +Denk +Derfler +Eberhard +Derflinger +Dersch +Deutsch +Deutsch +Deutsch +Eberhard +Deutschmann +Dewanger +Dewaty +Ebner +Dietachmayr +Dietrich +Dietrich +Dillersberger +Dinghofer +Ebner +Dinkhauser +Dittrich +Dittrich +Ditz +Diwald +Dobesberger +Eckhart +Dötsch +Döttling +Dolinschek +Domes +Eder +Doppler +Dostal +Draxler +Drescher +Eder +Drexel +Ederer +Drochter +Duda +Duld +Edler +Durry +Duschek +Duscher +Dvorak +Edlinger +Egg +Dworak +Eggendorfer +Egger +Ehgartner +Ehrenfried +Eibegger +Eibensteiner +Eich +Eichinger +Elshuber +Emmerling +Eichinger +Emhart +Ender +Enge +Enser +Entner +Enzfelder +Erb +Erler +Erlinger +Ermacora +Ertl +Ertl +Ertl +Etlinger +Etter +Eichinger +Ettmayer +Eigruber +Euller +Exler +Frank +Eisler +Eypeltauer +Eisterer +Eldersch +Firnberg +Ellenbogen +Flemming +Fachleutner +Fageth +Fahrner +Fahrner +Falger +Falle +Falser +Farthofer +Ellend +Fasslabend +Ellmauer +Fast +Fauland +Ellmerer +Elmecker +Faustenhammer +Elser +Feitzlmayr +Fekter +Feldgrill +Felsinger +Felzmann +Ferlitsch +Ferschner +Fersterer +Fertl +Feurstein +Einspinner +Eisenhut +Fiala +Fiedler +Fiegl +Figl +Fink +Fink +Fischer +Fischer +Fischl +Fischler +Fisslthaler +Fister +Gaál +Fleischacker +Fleischhacker +Gabriel +Fleischmann +Gabriele +Gaigg +Gaisbichler +Gaiswinkler +Gamsjäger +Gangl +Ganser +Gantner +Gargitter +Gartlehner +Gärtner +Gasperschitz +Gasselich +Gasser +Gassner +Flicker +Flöttl +Flossmann +Födermayr +Fohringer +Foppa +Gassner +Gatterer +Forsthuber +Gauster +Forstner +Gebert +Geiger +Frankenberger +Franz +Geischläger +Geisler +Geißler +Geißlinger +Genner +Franzmair +Frasz +Gerstl +Frauscher +Freißler +Geyer +Freund +Freund +Geyer +Freundlich +Gföllner +Friedl +Friedmann +Gföller +Gföller +Frieser +Giegerl +Frisch +Frischenschlager +Fritz +Gierlinger +Frizberg +Frodl +Giesinger +Frömel +Gimpl +Gindler +Glaser +Gisel +Glöckel +Glöckner +Frühbauer +Frühwirth +Frühwirth +Gmoser +Fruhstorfer +Fuchs +Georg Fuchs +Fuchs +null +Fürst +Fuhrmann +Göber +Furreg +Fux +Fux +Göschelbauer +Goess +Götz +Goldemund +Goll +Gorbach +Gossi +Gorton +Grabenhofer +Grabher-Meyer +Grabner +Grabner +Gradenegger +Gradinger +Gradischnik +Gradwohl +Graenitz +Graf +Graf +Graf +Graf +Graf +Graf +Graff +Grahamer +Haager +Haas +Haas +Haberl +Grailer +Haberzettl +Gram +Habringer +Hack +Grandits +Hackenberg +Hadriga +Gratz +Hämmerle +Häuser +Häuslmayer +Hafner +Gratzer +Hagenauer +Grebien +Hafner +Gredler +Hagenhofer +Hager +Hagleitner +Grießner +Hagspiel +Hahn +Grim +Hahn +Hahn +Gritschacher +Haiden +Gröger +Haider +Haider +Haider +Haigermoser +Hainzl +Halder +Haller +Haller +Hallinger +Hampel +Handel +Handl +Hanreich +Hans +Hanzlik +Größbauer +Groß +Haager +Hareter +Harramach +Harrich +Hartl +Hartl +Hartl +Großauer +Hartleb +Hartmann +Hartmann +Großmann +Hartmann +Harwalik +Gruber +Haselwanter +Gruber +Hasenauer +Gruber +Hasler +Gruber +Haselbach +Hattmannsdorfer +Hatzl +Haubenberger +Gruber +Haueis +Haunschmidt +Haupt +Nepomuk Hauser +Gruber +Gruber +Gruber +Grubhofer +Hauser +Hauthaler +Gruener +Hautmann +Hautzinger +Hawlicek +Heger +Grünsteidl +Heigl +Heigl +Heilinger +Heilmayer +Grundemann-Falkenberg +Heindl +Heindl +Gschnitzer +Heine +Heinl +Gschweidl +Gspandl +Gstöttner +Heinz +Heinz +Heinz +Heinzinger +Heiß +Heitzinger +Helbich +Held +Heller +Hellwagner +Helmer +Hemala +Herke +Hermann +Herrmann +Herrmann +Achatz +Achs +Herold +Herzele +Herzmansky +Hesele +Hessl +Hesoun +Hetzenauer +Heuberger +Hieden-Sommer +Hiermann +Hiessl +Hietl +Hillebrand +Hillegeist +Hiltl +Hinterleithner +Hintermayer +Hinterndorfer +Hintschig +Hirsch +Hirsch +Hirscher +Hladnik +Hlavac +Hobl +Hocheneder +Hochleitner +Hochsteiner +Hochmair +null +Höchtl +Höchtl +Hödl +Höher +Hoess +Hölzl +Höpfl +Hötzendorfer +Höll +Hötzendorfer +Hofbauer +Hofeneder +Hofer +Hofer +Hofer +Gudenus +Gürtler +Hofer +Gürtler +Hofer +Gugerbauer +Hoffmann +Hofmann +Gugg +Hofmann-Wellenhof +Hofmann von Wellenhof +Hofstetter +von Guggenberg +Hofstetter +Hohenberg +Hollersbacher +Holoubek +Guggenberger +Holper +Holzfeind +Holzinger +Honay +Honner +Hopfer +Horejs +Guggenberger +Horn +Guggi +Horr +Guglberger +Horvatek +Hosch +Hosp +Gumplmayer +Hostasch +Hrubesch +Hruska +Hryntschak +Huber +Gurtner +Gusenbauer +Guth +Gutmann +Gutscher +Guttenbrunner +Huber +Huber +Huber +Huber +Idl +Huber +Ilg +Hubinek +Hubmann +Hueber +Hueber +Hueber +Huemer +Huemer +Hüttenberger +Hugl +Hugelmann +Hummer +Hums +Hurdes +Hutterer +Hies +Schütz +Illmer +Iro +Iro +Irsa +Jäger +Jandrasits +Janecek +Janicki +Jankowitsch +Janschitz +Jaud +Jedek +Jerzabek +Franz Jesser +Jessner +Jiricek +Jochberger +Jochmann +Jokl +Jonas +Josseck +Juen +Lach +Jukel +Lackner +Jungwirth +Jutz +Lackner +Lackner +Lackner +Lafer +Lagger +Laimer +Kabas +Kabesch +Kainz +Kainz +Kaipel +Lakitsch +Kaiser +Lakner +Kalnoky +Kammerhofer +Kampichler +Lakowitsch +Kampitsch +Lala +Kandutsch +Lampl +Kapaun +Kaplan +Lanc +Kapral +Kapral +Karas +Karasek +Karl +Landgraf +Landmann +Karlsson +Karny +Karrer +Kaspar +null +Katzengruber +Langer +Kaufmann +Langthaler +Kaufmann +Lanner +Keimel +Lanner +Keller +Keller +Lanner +Keppelmüller +Kern +Laser +Kerschbaum +Kerstnig +Kiermaier +Lasnik +Killisch-Horn +Latzka +Kindl +Kinzl +Kirchknopf +Kiss +Kittl +Klasnic +Klaus +Klausberger +Klautzer +Klein +Lauritsch +Klein +Klein-Löw +Lausecker +Kleiner +Kleissl +Lecher +Klemenz +Lechner +Klenner +Kletzenbauer +Kletzmayr +Klieber +Otto Lehner +Lehr +Leibenfrost +Leibetseder +Klimann +Leichin +Klimberger +Leichtfried +Klomfar +Leikam +Klug +Leimböck +Klupp +Leiner +Knaller +Leisser +Knapp +Leissing +Leithenmayr +Knechtelsdorfer +Kneußl +Leitner +Leitner +Knirsch +Knoll +Leitl +Knosp +Lengauer +Kober +Lengauer +Koch +Kocher +Köck +Köck +König +Lenz +Lenzi +Leser +Leskovar +Letmaier +Leutgeb +Leuthner +null +König +Libal +Köpf +Lichal +Köstler +null +Lichtenegger +Körner +Liebl +Liechtenstein +Köstler +Liedl +Köteles +Kövari +Lieschnegg +Kofler +Kohlmaier +Linder +Kokail +Lins +Linsbauer +Linzer +Kolassa +Lipp +Kolb +Kolb +List +Kollarz +Koller +Koller +Koller +Kollinger +Litschauer +Kollmann +Kollmann +Liwanec +null +Konecny +Konecny +Löffler +Konir +Konrad +Kopf +Löschnak +Koplenig +Löw +Loser +Luchner +Ludescher +Kopp +Koppensteiner +Ludwig +Koppler +Koref +Koren +Stephan Koren +Korosec +Kortschak +Kos +Kostelecky +Kostelka +Kostroun +Ludwig +Lugmayer +Luhamer +Kottek +Lukas +Koubek +Lukas +Kotzina +Lukasser +Kouba +Dieter Lukesch +Kowald +Krämer +Kräuter +Lukeschitsch +Kräutl +Kraft +Luksch +Lump +Kraft +Krainer +Krainer +Luptowits +Kraker +Lussmann +Kraml +Krammer +Krammer +Kranebitter +Kranzlmayr +Kratky +Krauland +Alois Kraus +Kraus +Kraus +Kreilmeir +Kreisky +Lutschounig +Luttenberger +Lutz +Krempl +Kren +Krendl +Krenn +Krenn +Kreutzberger +Krippner +Krisch +Krismanich +Kristofics-Binder +Kriz +Kroboth +Krötzl +Krones +Krottendorfer +Kroy +Kroyer +Krünes +Krützner +Krüzner +Kuba +Kubanek +Kuchner +Kudlich +Kuhn +Kukacka +Kulhanek +Kulman +Kummer +Kummer +Kunschak +Kunst +Kunstätter +Kuranda +Kuttner +Kysela +Macher +Reinhard Machold +Nagele +Nedwal +Nedwed +Machunze +Mackowitz +Mader +Neidhart +Neisser +Nemecz +Neudorfer +Neugebauer +Maderner +Maderthaner +Maderthaner +Mädl +Mahnert +Maier +Maier +Maier +Mairinger +Maisel +Neuhauser +Neuhofer +Neumann +Neumann +Neumann-Walter +Neuner +Neunteufel +Maixner +Maleta +Neustädter-Stürmer +Malik +Neutzler +Mandl +Manhalter +Manndorff +Mantler +Neuwirth +Neuwirth +Mantler +Niederwieser +Marberger +Niedrist +Nigl +Nimmervoll +Ninaus +Nittel +Noggler +Novak +Nowotny +Nürnberger +Obenaus +Ober +Oberegger +Oberhaidinger +Oberhammer +von Oberleithner +Obermayr +Marchner +Odehnal +Marckhl +Obrutschka +Oelzelt +Ofenböck +Marek +Ofenböck +Margaretha +Marizzi +Mark +Markowitsch +Markschläger +Marktschläger +Marsch +Marwan-Schlosser +Mataja +Matejcek +Matt +Matzenauer +Matzke +Matzner +Maurer +Mautner Markhof +Mayer +Offenbeck +Ofner +Mayer +Ofner +Ogris +Mayer +Olah +Mayer +Onodi +Mayer +Ortner +Mayer +Ortner +Oschmalz +Mayer +Osler-Toptani +Ott +Mayr +Mayr +Mayr +Mayr +Mayrhauser +Mayrhofer +Mayrhofer +Medl +Meier +Meischberger +Meisinger +Meißl +Meissner-Blau +Meißner +Meixner +Mellich +Melter +Mentasti +Menzl +Mertel +Messner +Metzker +Michl +Michlmayr +Migsch +Miklas +Mikola +Pabst +Pacher +Paischer +Palme +Palme +Pansi +null +Panzenböck +Parfuss +Pargfrieder +Parnigoni +Parrer +Partik +Partik-Pable +Paulik +Paulitsch +Paulitsch +Pauly +Paunovic +Pawkowicz +Miksch +Pawlik +Millwisch +Pay +Payer +Minkowitsch +Pazelt +Pechall +Peck +Konecny +Pehm +Pelikan +Mistinger +Penz +Mittendorfer +Pernter +Mitterer +Perwein +Peter +Peter +Peter +Petrovic +Petschnig +Petschnik +Pfaller +Pfeffer +Pfeifer +Pfeifer +Pflanzl +Piaty +Pichl +Mitterer +Pichler +Pichler +Mock +Pichler +Pichler +Pichler +Pick +Modl +Mölschl +Fritz Eckert +Piffl-Percevic +Piller +Pilz +Pirchegger +Pirchegger +Pirker +Mohnl +Pirker +Moik +Molinari +Pischitz +Pischl +Pisec +Pistor +Pitschmann +Molterer +Pittermann +Mölzer +Molterer +Mondl +Polleruhs +Plaimauer +Morawitz +Plasser +Moser +Pleyer +Moser +Pleyl +Pöder +Moser +Pölz +Moser +Moser +Pölzer +Moser +Pölzer +Moser +Moser +Elisabeth Möst +Moßhammer +Motter +Mrkvicka +Muchitsch +Pötsch +Muchitsch +Pohl +Pokorny +Mühlbacher +Polcar +Mühlbachler +Polke +Pollak +Polster +Pomaroli +Mühlberger +Pomper +null +Pongratz +Pongratz +Pongruber +Müller +Popp +Populorum +Müller +Porges +Müller +Posch +Müller +Posch +Posch +Pospischil +Potzinger +Prader +Müller +Praher +Müller-Guttenbrunn +Prantl +Müllner +Müllner +Prähauser +Müllner +Pramendorfer +Pranckh +Muhr +Praxmarer +Prechtl +Murauer +Prechtl +Murer +Preindl +Preiß +Prentl +Murowatz +Preußler +Mussil +Preußler +Primavesi +Franz Prinke +Prirsch +Probst +Prisching +Probst +Probst +Prodinger +Proft +Proksch +Psonder +Pumberger +Pumpernig +Puntigam +Putz +Äbeleis +Tanzmeister +Äbelhör +Taus +Uhlir +Ulbrich +Ulrich +Tauschitz +Ulmer +Umenberger +Unterberger +Unterkircher +Unterwurzacher +Urban +Url +Ursin +Tausk +Tazreiter +Teltschik +Tesar +Teschl +Teufl +Thaler +Vaugoin +Veichtlbauer +Veleta +Verzetnitsch +Eugen Veselsky +Vetter +Viehauser +Vinzl +Vögel +Thalhammer +Vogel +Voggenhuber +Thanhofer +Vogl +Voithofer +Thanner +Volker +Thirring +Thoma +Volkert +Vollmann +Vonwald +Voraberger +Votruba +Vranitzky +Thullner +Thurner +Tichy-Schreder +Herbert Tieber +Tirnthal +Titze +Wabl +Tmej +Tödling +Wabl +Tolde +Waber +Tomaschitz +Tomschik +Wache +Toncic-Sorinj +Wagner +van Tongel +Tonn +Wagner +Wagner +Wagner +Wagner +Wagner +Tratter +Wagner +Wagner +Trattner +Wagner +Traußnig +Wahl +Traxler +Waihs +Traxler +Treichl +Tremmel +Tremmel +Walcher +Walcher +Waldbrunner +Waldl +Waldner +Trenkwitz +Trenovatz +Walheim +Walla +Wallig +Troll +Wallisch +Truppe +Wallisch +Wallner +Wallner +Tschadek +Wallner +Wally +Walzer +Tschida +Wancura +Waneck +Tschitschko +Wappis +Wastl +Weber +Tschurtschenthaler +Weber +Türtscher +Tull +Weber +Tuller +Wedenig +Wedenig +Wedenig +Tusch +Wedra +Tusek +Weichenberger +Tychtl +Tzöbl +Weidenhillinger +Weidenhoffer +Weidenholzer +Weidinger +Weigl +Weihs +Weikhart +Weinberger +Weinberger +Weindl +Weinmayer +Weiser +Weiskirchner +Weismann +Weiss +Weiß +Weiß +Weiss +Weiß +Weißmann +Weisz +Weixelbaumer +Weller +Wendl +Wendl +Wense +Werner +Westreicher +Wetschnig +Wichtl +Raab +Widholz +Widmayer +Wiedenhofer +Wielandner +Wieninger +Wieser +Wiesinger +Wiesinger +Wiesmaier +Wilfing +Wille +Willinger +Wimberger +Wimmer +Wimmer +Wimmer +Raab +Wimmer +Rabl +Wimmersberger +Windsteig +Rabl-Stadler +Radinger +Wille +Winetzhammer +Winkler +Winkler +Radlegger +Raffl +Winkler +Winsauer +Winsauer +Winter +Winter +Winterer +Withalm +Witrisal +Witternigg +Witzany +Witzany +Rainer +Wöckinger +Rainer +Wodica +Wöginger +Ramek +Wölfler +Wöllert +Wörndl +Wohlmeyer +Wolf +Rammer +Wolf +Wolfmayr +Rapatz +Wollek +Woller +Raser +Wollinger +Wondrack +Rasser +Woschitz +Rauch-Kallat +Wotawa +Wührer +Rauchenberger +Karl Wüst +Rauhofer +Rauscha +Wuganigg +Wunder +Wunsch +Wutschel +Wutte +Rauscher +Rechberger +Redlich +Regensburger +Regner +Rehor +Sabelko +Sacher +Sailer +Salcher +Salcher +Saliger +Sallaberger +Sallinger +Salzer +Aubert Salzmann +Samwald +Sandmeier +Sassik +Sattlberger +Sattlegger +Schabes +Schaber +Schacherl +Schachinger +Schachner +Schäfer +Schäffer +Schärf +Schaffer +Schaidreiter +Schambeck +Schamberger +Scharf +Scharfegger +Scharizer +Schattenfroh +Schauer-Schoberlechner +Schauer +Scheff +Scheffauer +Scheibein +Scheibengraf +Scheibenreif +Scheiblin +Scheibner +Scheicher +Scheidl +Schemer +Scherrer +Scheuch +Scheucher +Schickelgruber +Schicker +Peter Schieder +Schiegl +Schierhuber +Schiffrer +Schindlbacher +Schipani +Zangel +Zankl +Zarboch +Zaun +Zaunegger +Zauner +Zdarsky +Zechmann +Zechner +Zechtl +Zehetgruber +Zeidler +Zeillinger +Zeininger +Zelenka +Viktor Zenker +Zerdik +Zernatto +Zimmermann +Zingl +Zingler +Zipser +Zittmayr +Zodl +Zwanziger +Zwenk +Zwetzbacher +Rehrl +Rehrl +Reich +Reichhold +Reichl +Reicht +Reifmüller +Reimann +Reiner +Reinhart +Reinprecht +Reisetbauer +Reisinger +Reismann +Reiter +Reitsamer +Remplbauer +Renner +Renner +Renner +Renoldner +Resch +Resch +Resch +Reschny +Resel +Ressel +Reumann +Reut-Nikolussi +Rezar +Richter +Richter +Rieder +Rieder +Riedl +Rieger +Riegler +Riegler +Riemer +Riess-Passer +Rintelen +Robak +Rochus +Rockenschaub +Rödhammer +Römer +Römer +Rohr +Rösch +Rösch +Rösler +Roithner +Roitinger +Roller +Rom +Roppert +Rosenberger +Rosenberger +Rosenstingl +Roth +Roth +Rott +Rotter +Rozenits +Rubant +Rudel-Zeynek +Rück +Rückl +Ruhaltinger +Rumpold +Rupp +Schirmer +Schlager +Schlager +Schlager +Schlegel +Schleinzer +Johannes Schlesinger +Schlesinger +Schlögl +Schlögl +Schmelz +Schmid +Schmidl +Schmidt +Schmidtmeier +Schmitz +Schmitzer +Schmölz +Schneeberger +Schneider +Schneider +Schneidmadl +Schnell +Schnofl +Schober +Schober +Schober +Schöchtner +Schön +Schönbauer +Schönbauer +Schönfeld +Schönhart +Schönsteiner +Schöpf +Schöll +Schöpfer +Schoiswohl +Scholger +Schorn +Schorsch +Schraffl +Schramm +Schranz +Schreiner +Schreiter +Schrotter +Schürer +Schürff +Schürl +Schüssel +Schumacher +Seitz +Schulz +Schulz +Schumy +Schuschnigg +Schuster +Schuster +Schwab +Schwärzler +Schwaiger +Schwarz +Schwarzböck +Schwarzenberger +Schwarzmann +Schwarzott +Schweda +Schweiger +Schweinberger +Schweinhammer +Schweitzer +Spalowsky +Spannocchi +Schwemlein +Speiser +Schwer +Spielbüchler +Schwimmer +Schwinner +Scrinzi +Spies +Sebinger +Spindelegger +Seda +Spindelegger +Sponner +Seel +Springschitz +Sügur +Srb +Staffa +Stampfl +Seidel +Stampler +Stangl +Seidel +Staribacher +Seidel +Staudinger +Steger +Seidinger +Steidl +Stein +Seidl +Steinbach +Steinbauer +Seidl +Steinböck +Seiler +Steiner +Seilinger +Ludwig Steiner +Seiner +Steinhuber +Steininger +Steinle +Steinocher +Sekanina +Steinwender +Stendebach +Stepancik +Seliger +Sever +Stepantschitz +Steyrer +Stika +Edgar Siegele +Stippel +Gerulf Stix +Stocker +Stocker +Stögner +Stögner +Siegl +Sigl +Sima +Simperl +Singer +Sinowatz +Skaret +Rüdiger Starhemberg +Skotton +Starhemberg +Starck +Steidl +Steidle +Steinegger +Skritek +Steinegger +Slavik +Steiner +Smejkal +Steiner +Steinmaßl +Steinwender +Stemberger +Stempfer +Stocker +Stöckler +Smitka +Smolle +Solar +Sommer +Sommer +Soronics +Stölzel +Stohs +Stoiser +Stoisits +Stoll +Stoppacher +Strache +Strachwitz +Stradal +Straffner +Soukup +Straßberger +Strasser +Streeruwitz +Stricker +Stricker +Strießnigg +Strobl +Strobl +Strobl +Ströer +Strohmaier +Strimitzer +Suppan +Suttner +Svihalek +Swoboda +Sylvester +Strommer +Sylvester +Strunz +Strutzenberger +Strziska +Stüber +Stummvoll +Stürgkh +Stumpf +Sturm +Supersperg +Sulzer +Suchanek +Siegele +Egger +Geßl +Hammerstorfer +Hanusch +Huber +Hammerschmid +Rieß +Burgmann +Eckmayr +Kait +Kapsreiter +Kemetter +Keller +Kern +Kerber +Keschmann +Kindermann +Kienzl +Kinz +Kittinger +Kienböck +Glockner +Gaßner +Kandler +Lechner +Hager +Hüttmayr +Schaufler +Seiringer +Seipel +Schein +Koczur +Kernmaier +Kecht +Kanitz +Thurnher +Teufel +Weinhandl +Langthaler +Abram +Krenn +Möbius +Nußbaumer +Hagenhofer +Mathis +Puttinger +Forsthuber +Wimmer +Perl +Prasch +Grasberger +Cerwenka +Maria Steibl +Königshofer +Pfeifer +Kerschbaumer +Steinkellner +Schnizer +Vilimsky +Westenthaler +Harring +Silhavy +Puntscher Riekmann +Steindl +Eisl +Leberbauer +Wurm +Lacina +Dohnal +Michalek +Scholten +Klima +Schender +Fiedler +Pranckh +Haubner +Brix +Fuchs +Kaufmann +Kummerer +Müller +Rada +Brader +Donabauer +Kopf +Kurzbauer +Leitner +Maitz +Morak +Platter +Rack +Sauer +Schrefel +Steindl +Wurmitzer +Brauneder +Graf +Grollitsch +Höbinger-Lehrer +Hofmann +Krüger +Lafer +Madl +Mentil +Preisinger +Pretterebner +Rossmann +Ruthofer +Salzl +Schöggl +Stadler +Wenitsch +Gföhler +Haidlmayr +Moser +Allinger +Kammerlander +Van der Bellen +Firlinger +Gredler +Peter Haselsteiner +Kier +Schaffenrath +Nußbaumer +Eugen Bösch +Pfeffer +Ramsbacher +Winter +Stiegelbauer +Einem +Stix +Pröll +Katschthaler +Purtscher +Häupl +Weingartner +Lentsch +Zweytick +Pittermann +Jarolim +Dunst +Freiberger +Peschel +Schennach +Pühringer +Rodek +Staribacher +Kottulinsky +Waldhäusl +Ferrero-Waldner +Gehrer +Trenk +Märk +Himmer +Platzer +Toifl-Campregher +Richau +Jung +Horngacher +Jäger +Koller +Lukas +Riepl +Rübig +Tegischer +Trinkl +Neugebauer +Kröll +Lackner +Ablinger +Prinzhorn +Povysil +Ludwig +Rieser +Weilharter +Stampler +Beck +Klusemann +Petznek +Frenzel +Riedler +Repar +Wilfing +Fischer +Linser +Moser +Schausberger +Farnleitner +Schmid +Moser +Grillenberger +Schweiger-Stenzel +Habsburg-Lothringen +Swoboda +Ettl +Berger +Sichrovsky +Raschhofer +Kronberger +Hager +Mühlwerth +Böhm +Hager +Steinbichler +Edlinger +Prammer +Wittmann +Ruttenstorfer +Gaugg +Sausgruber +Gaßner +Treitler +Schöls +Scherb +Pühringer +Haunschmid +Strugl +Wolfinger +Vindl +Oberländer +Leichtfried +Schaumberger +Egger +Kurzmann +Heinzl +Hensler +Ram +Thumpser +Windholz +Leutgöb +Klein +Anton Marolt +Pendl +Missethon +Ledolter +Tilg +Maier +Keuschnigg +Grander +Gasteiger +Grissemann +Scheuch +Neuner +Trunk +Gruber +Teller +Reheis +Sevignani +Saller +Mainoni +Boden +Martin +Prets +Scheele +Echerer +Ilgenfritz +Ager +Nittmann +Dobnigg +Faul +Heinisch-Hosek +Kuntzl +Muttonen +Plank +Schasching +Sima +Bauer +Paphay +Egghart +Fallent +Graf +Hartinger +Hornegger +Knerzl +Müller +Neudeck +Ortlieb +Pistotnig +Reindl +Schender +Schoettel-Delacher +Sodian +Staffaneller +Wattaul +Weinmeier +Zellot +Zierler +Baumgartner-Gabitzer +Gahr +Hornek +Kößl +Lexer +Miedl +Mikl-Leitner +Pecher +Prinz +Schweisgut +Tancsits +Wolfmayr +Brosz +Glawischnig-Piesczek +Grünewald +Kogler +Lichtenberger +Lunacek +Pirklhuber +Hoscher +Hagen +Aspöck +Buchinger +Sickl +Grasser +Strasser +Waneck +Finz +Hakl +Mitterlehner +Brugger +Niederhuemer +Burket +Höllerer +Böhmdorfer +Kneifel +Kubitschek +Loos +Blatnik +Würschl +Fösleitner +Wochesländer +Schultes +Bachner +Hetzl +Klamt +Hösele +Köberl +Binna +Kaltenbacher +Hakel +K. Becker +Forstinger +Stadler +Kickert +Aburumieh +Auer +Schlaffer +Fasching +Freigaßner +Gruber +Reisenberger +Todt +Lapp +Kanovsky-Wintermann +Donnerbauer +Lindinger +Csörgits +Trettenbrein +Horn +Langreiter +Niessl +Haubner +Rosenmaier +Wimmler +Grillitsch +Blasisker +Wittauer +Fleckl +Klestil +Abraham +Kirchschläger +Waldheim +Röhrs +Rausch +van Staa +Rosenkranz +Mandak +Sburny +Rest-Hinterseer +Schnider +Bogensperger +Hubert Auer +Xaver Böhm +Eßl +Franz +Fuhrmann +Glaser +Hütl +Kapeller +Machne +Marek +Pack +Praßl +Rädler +Riener +Sieber +Schiefermair +Steindl +Winkler +Wöginger +Stadler +Turkovic-Wendl +Bayr +Becher +Broukal +Grossmann +Keck +Königsberger-Ludwig +Jan Krainer +Krist +Matznetter +Moser +Puswald +Scharer +Schönpass +Schopf +Spindelberger +Stadlbauer +Steier +Walther +Achleitner +Bleckmann +Bucher +Walch +Sulzberger +Mayr +Preineder +Scheuch +Fröhlich +Kritzinger +Scheucher-Pichler +Molzbichler +Rothauer +Ludwig +Michael Ikrath +Michael Hainisch +Gorbach +Pröll +Lopatka +Mikesch +Lichtenegger +Wegscheider +Felzmann +Regler +Eduard Kühnel +Bader +Diesner-Wais +Ebner +Gansterer +Giefing +Haller +Höfinger +Kerschbaum +Roth-Halvax +Zwazl +Weinzinger +Brauner +Bußjäger +Funk +Gleixner +Grabenwarter +Griessner +Haller +Karl Korinek +Matzka +Mayer +Mayrhofer +Mödlhammer +Nagl +Ahlinger +Pfeifenberger +Poier +Raschauer +Rzeszut +Specht +Tumpel +Vögerle +Wiederin +Wutscher +Wutte +Voith +Egger +Freunschlag +Wiesenegg +Konrad +Baier +Gumplmaier +Tiefnig +Lichtenecker +Lindinger +Spiegelfeld-Schneeburg +Schimböck +Sonnberger +Nekula +Prutsch +Kampl +Burgstaller +Kurz +Doppler +Dernoscheg +Neureiter +Fraunschiel +Darabos +Pehm +Gastinger +Lueger +Resetarits +Wehsely +Leutner +Fauland +Zinggl +Abentung +Leichtfried +Seeber +Holoubek +Thienel +Einwallner +Mayer +Plassnik +Prokop +Mittermüller +Winkler +Preiner +Jany +Sodl +Erlitz +Mosbacher +Hladny +Klug +Voves +Perhab +Mörk +Knoll +Diamand +Gabel + Gall +Gold +Groß +Kolischer +Liebermann +Opoka Nathan Loewenstein +Mahler +Müller +Rauch +Reitzes +Stand +Steinhaus +Stern +Straucher +Witt +Belakowitsch-Jenewein +Eder +Eder-Gitschthaler +Obernosterer +Irina Fürntrath-Moretti +Hörl +Karl +Köfer +Stauber +Fazekas +Kuzdas +Kirchgatterer +Rinner +Muchitsch +Füller +Mayerhofer +Weinzinger +Mayer +Gradauer +Haimbuchner +Schieder +Haberzettl +Zach +Hradecsni +Schatz +Zwerschitz +Zanger +Hauser +Rossmann +Fichtenbauer +Strache +Schalle +Kickl +Hofer +Neubauer +Klement +Themessl +Breiner +Eibinger +Eisenschenk +Kdolsky +Buchinger +Faymann +Hahn +Kranzl +Rudas +Ehmann +Bulfon +Seitner +Florianschütz +Georg Schelling +Schittenhelm +Winterauer +Lohfeyer +Kemperle +Steinhauser +Hursky +Beer +Kalina +Grimling +Dönmez +Weninger +Vock +Herbert +Lugsteiner +Strohmayer-Dangl +Vladyka +Greiderer +Zangerl +Junker +Bock +Wechner +Lautenschlager +Peinsteiner +Hell +Dörfler +Auer +Gessl-Ranftl +Hechtl +Lipitsch +Plessl +Cortolezis-Schlager +Klikovits +Lettenbichler +Mayer +Schönegger +Singer +Deimek +Doppler +Gartelgruber +Haider +Hübner +Höbart +Jannach +Karlsböck +Kitzmüller +Kunasek +Lausch +Mühlberghuber +Rosenkranz +Stefan +Unterreiner +Winter +Grosz +Huber +Jury +Linder +List +Lugar +Markowitz +Petzner +Schenk +Spadiut +Tadler +Widmann +Brunner +Korun +Musiol +Schwentner +Walser +Windbüchler-Souschill +Tauchner +Ertl +Stöger +Berlakovich +Hundstorfer +Ostermayer +Bandion-Ortner +Ebner +Petritz +Wenger +Brunner +Köstinger +Regner +Kadenbach +Werthmann +Ehrenhauser +Obermayr +Zwanziger +Michalke +Astleitner +Steinkogler +Rosenstock +Rosenzweig +Schreiber +Schwab +Singer +Tittinger +Trachtenberg +Verkauf +Wagner +Wiener +Weiser +Winterstein +Zucker +Klaczko +Kuh +Seinfeld +Auspitz +Beer +Samuel Bloch +Byk +Dormitzer +Friedmann +Fürth +Glaser +Gomperz +Hönigsmann +Jaques +Kallir +Kareis +Ladenburg +Landau +Landesberger +Leon +Lippmann +Luzzatto +Mauthner +Mendelsburg +Morpurgo +Morpurgo +Neuwirth +John Oppenheimer +Piepes-Poratynski +Popper +Porges +Rapoport +Kurand +Mises +Duzdar +Lampel +Temmel +Posch-Gruska +Hammerl +Köberl +Krusche +Konrad +Reisinger +Schweigkofler +Pisec +Jenewein +Remler +Jachs +Haslauer +Waldner +Kurz +Venier +Kaufmann-Bruckberger +Wallner +Fürlinger +Androsch +Taucher \ No newline at end of file diff --git a/data/mediacategories.txt b/data/mediacategories.txt new file mode 100644 index 0000000..53365f4 --- /dev/null +++ b/data/mediacategories.txt @@ -0,0 +1,117 @@ +Akustische Medien +Algebra +Alltagskompetenz +Andere Sprachen +Angewandte Biologie +Angewandte Kunst +Architektur +Arithmetik +Astrid Lindgren +Astronomie +Atlanten +Atlas +Belletristik +Berufsorientierung +Bestimmungsbuch +Bewegung&Sport +Bildnerische Kunst +Biografien +Biologie +BiologieÖkologie +Chemie +Coaching +Comic +Darstellende Kunst +Deutsch +EDV +Englisch +Epochen +ErnährungHaushalt +Erstes Lesen +Erwachsene +Erwachsenenliteratur +Ethik +Ethik&Soziales +Evolution +Fachliteratur +Forschen +Forschen Chemie +Forschen Physik +Gärtnern +Geografie +Geologie +Geometrie +Geschichte +Geschichte Mathematik +Gesellschaft +Gesundheit&Persönlichkeit +Grammatik +Hauptbibliothek +Haustier +Jugendliteratur +Jugendliteratur mit Geschichte +Kinderliteratur +Klima&Wetter +Kochbuch +Konstruktion +Konzentration +Kreativ +Kultur +Künstler und Kunst +Länder +Lebensräume +Lehrerhandbuch +Lesen +Lexikon +Lexikon/Bestimmungsbuch +Literatur +Literaturgeschichte +LÜK-Heft +Märchen und Sagen +Mathematik +Medien +Mensch +Meteorologie +Methoden&Arbeitstechniken +Motorik +Musik +Naturwissenschaften +Ökologie +Ökonomie +Persönlichkeiten +Pflanzen +Philosophie +Physik +PhysikChemie +Politik +Praktische Biologie +Praktische Chemie +Praktische Mathematik +Praktische Physik +Print-Medien +Rechtschreibung +Religion +Rhythmik +Rhytmik +Sachbuch +Schreiben +Schrift +Schulbuch +Skulptur +Soziologie +Spiel +Sport +Sprache +Tiere +Trainingsbuch +Tüftelbuch +Turnen +Unterrichtsmaterial +Visuelle Medien +Wahrnehmung +Weltkunde +Werkbuch +Werken +Werkstattmappe +Wörterbuch +Zeit \ No newline at end of file diff --git a/data/mediapublishers.txt b/data/mediapublishers.txt new file mode 100644 index 0000000..739b597 --- /dev/null +++ b/data/mediapublishers.txt @@ -0,0 +1,449 @@ +A.fröhlich +aare +AG Österreichischer Jugend- und Kinder Buchverleger +Agb +agrarverlag +ak wien +Altberliner +Amt d nö Landesreg +An der Ruhr +Andersen Press +Annette Betz +ANRICH +antis +arbor +archivproduktion +Arena +ARGE Sonnenuhrhaus +Ariola +Ars Edition +ars vivendi +arsEdition +astro media +at +at verlag +atrium +Auer +augustus verlag +av +Barnes & Noble +basl/detsch +basserman +bassermann +bastei +bastei lübbe +Bauer Verlag +Baumhaus +bbc +Bbücher +bechter münz verlag +bechtermünz +becker-kuns +bellami editore +Beltz +Beltz Praxis +beltz und gelberg +BELTZ&Gelberg +Belz +bender&co +benzinger edition +berlitz +Bertelsmann +Berttelsmann +Betman book +Bild +bilderbuchstudio +blendamed +Bloomsbury +BLV +bm:bwk +bmbwk +bmg +BMUK +boba +bohem press +Bohmann +bouquet +breitschopf +Brockhaus +Brunnen +btb +buch&welt +buch&zeit +Bücherbär +bücherzauber +buchklub gorilla +Bundeszentrale f…. +cambridge +Candlewick Press +caran d'ache +Carl Hanser Verlag +Carlsen +Carlsen Comics +Carlsen Manga +cbj +cda +cdv/atrium +Cecilie Dressler Verlag +christian +Christian Verlag +christophorus +clare +club +Collins +concolino +coppenrath +cornelsen +cornelsen software +Czernin Verlag +DACHS VERLAG +Danone +Das Beste +de agostini +Delphin +Der Kinderbuchverlag +Deutsche Grammophon +Deutscher Taschenbuch Verlag +diesterweg +Dino Comics +Diogenes +Disney +DK +dk games +donauinstitut +Donauland +Dorling Kindersle +Dorling Kindersley +drava +DRESSLER +droemer knaur +Druck Walla +Druckerei Berger +dtv +dtv junior +duden +dumont +e.dorner +E.Dorner Verlag +eaue wien +ed +ed.hölzel +edition helbling +edition q +edition riesenrad +elbemühl gesmbh. +Elefanten Press +Ellermann +Eloquence +emi +Engelbert-Verlag +englisch verlag +ensslin +Eslinger +Esslinger +Evangelischer Presseverband Österreich +Falken +findling +Fischer Taschenbuch Verlag +Fleurur Wissen +fleurus +Fleurus Idee +Fontana +Franckh +Franklin Watts +frechverlag +Freies Geistesleben +Freytag&Berndt +freytag-berndt +fric&fric +Gabriel +Garandache +Generali +GEO +Georg Bitter Verlag +Gerstenberg +Golden book +Goldmann +Gondrom +Gorilla +gu +GU Kompas +Gulliver +hallwag verlag +Harper Trophy +Harrington Park Press +Hase und Igel +Hase&Igel +Haupt +Heel +hemisync +Herder +Herder Spektrum +Herdt +herold +herzfeld +Heyne +hirschgraben +hnh.com +hoanzl +Hodder Children's Books +Hölzel +holzhausen +hörcompany +Horizont +hörzu wisseninteraktiv +hpt +hpthek +Hügelscheffer +hugendubel +hüthig +hyperion +igel +infomnibus +Insel +ivo haas +J&V +Jako-o +jungbrunnen +Junior Katalog +K&S +Kabel +kaiser +karl voegels +Karlhansen +kärntner druckerei +kbv +kbv LUZERN +kerle +kfm +Kiepenheuer & Witsch +Kindermann +Kingfisher +kinowelt +Kiwi +Klett +klett cotta +Klopp +knaur +Knesebeck +köhnenalternativ +köhnendekorativ +köla +kompass +könemann +kosmos +kreativ +kremayr&schierau +Kreuz +kthv +Kurfürst +Kurfürst Verlag +kynos +L.schwann +Ladybird +laju wien +Langenscheidt +Lappan +Lebendiges Wort +leipzig +leoganger kinderkultur +leopold stocher +leykam +Life Verlag +LILLA GORILLA +literateam +Loewe +loewe verlag +luchterhand +luzern +m.toman +Macmillan +magna sound +manz +media +Melzer Druck +mentor +meyer +meyers +Meyster +microsoft +Middelhauve +middelhauvei +middlehauve +ministerium für gesundheit, soziales, frauen und familie NRW +Modernes Leben +moewig +molden +Moses +Müller +naturbuch +naumann & goebel +naumann&göbel +naxos +Neuer Breitschopf Verlag +neugebauer +neugebauer press +Niederösterreich +nö +NÖ Landesakademie +nord-süd +noris +np +nrw +nymphenburger +Ö. Bundsesverlag +öamtc +Obelisk Verlag +oberste brink +Obv +ÖBV +öbv hbt +öbv&hpt +Oetinger +oetinger audio +oetinger interaktiv +Ohne Verlag +Öko log +ökobuch +Ökotopia +Oldenbourg +oldenburg +OMNIBUS +oö +oppermann +orbis +Orchard +orf +Östereichische Bibelgesellschaft +otto maier +Otto maier verlag +Ouldenbourg +oxford books +Oxford Bookworms Libary +OZ Velber +OZ Verlag +Paetec +Pan +Parragan +parragon +Patmos +Pattloch +pb +PenguinPlays +pestalozzi +Peter Hammer +Peter Hammer Verlag +peters kinderbuch +picus +pine point record company +piper +Pisture Puffins +pm history +pons +prestel +Psychologie Verlag Union +pubicationPN°1 +punkt +Putnam +Quintessenz Verlags GmbH +raabe +rauch +Ravensburger +ravensburger buchverlag +Reclam +Reniets Verlag +rex Verlag +rororo +Rotfuchs +Rötzer druk +Rowohlt +royal classics +Ruhr +Running Press +salzburger jugendverlag +schaffmann&kluge +schatzinsel +Scherz +Scholastic +Schroedel +schubert&franzke +Schubi Training +schwarzkopf&schwarzkopf +seitz +sigloch edition +simon druez +SKV-Edition +sony +spectra +spiegel online +St. Gabriel +steinberg +Strich Punkt +Struik +Süddeutsche Zeitung Junge Bibliothek +südverlag +südwest +südwest verlag +Suhrkamp +t&h +tandem +tappeiner verlag +taschen +Tecklenborg +terzio +Tessloff +Tessloff Verlag +Theiss Werlag +Thienemann +Thorsons +time life +toja +tosa +Tyrolia-Verlag +Uebereuter +Ueberreter +Ueberreuter +Ullmann +Ullstein +unicef +union +Unionsverlag Sansibar +Universal Press Syndicate +universum film +Urachhaus +Usborne +VAK Verlag für Angewandte Kinesiologie +valve hearts +Velber +Veritas +Verlag an der Ruhe +Verlag an der Ruhr +Verlag AOL +Verlag Ernst Kaufmann +Verlag Freies Geistesleben +Verlag Grosser +Verlag hpt +Verlag ivo haas +Verlag Österreichisches Katholisches Bibelwerk Klosterneuburg +Verlag Sauerländer +Verlag St. Gabriel +vml verlag modernes lernen +VNS +Vocabfun +w.taman +Walker Books +walter hädecke +Warne +warner +Weber Verlag +weltbild +westermann +westermann wien +Westermann Wien, LÜK +Wirtschaftskammer Österreich +Wissen +Wolfgang Mann +Zweitausendeins +Zytglogge +Zytglogge werkbuch +Zytglogge/WWF \ No newline at end of file diff --git a/data/mediatitles.txt b/data/mediatitles.txt new file mode 100644 index 0000000..eb4cc37 --- /dev/null +++ b/data/mediatitles.txt @@ -0,0 +1,1986 @@ +Afrikanische Märchen +Jagd auf den 100 Milliarden Dollar Schatz +Lebendig statt brav +Test +Test +Alles über Katzen +Aufgepasst, Juli Falk! +Verliebte Girls +Wenn du nur wüsstest +Geschichten von Freundschaft, Magie und Gefahr +Geschichten zum träumen, rätseln und lachen +Abenteuer Garten +Bauerngärten +Zauberpflanzen +Fleisch&Co +Milch&Co +Produktion&Verarbeitung von Lebensmitteln +Hexengewitter +Sagen und Märchen aus Sachsen +Schiff in der Wüste +Niederösterreich +Das Portfoliokonzept +The Schoolbus comes at eight oclock +Das Fabelbuch von Aesop bis heute +Das große Buch von Brombeerhag +Der Tageschlucker +Mein erstes Buch von der ganzen Welt +Mein grosser Atlas zur europäischen Union +Piraten +Wir schlafen bis der Frühling kommt +Alice Rose und die große Silberverschwörung +Die wilden Ponys von Dublin +Schön&blöd +Silberflügel +Mit Weiden bauen +Kinder im Pesta +Die Kunst der Fuge +Allgemeinwissen für Schüler +Christoph Columbus +Claire wil'ls wissen +Das unendliche Reich der Sterne +Der Hase Franz +Eine Rivalin für Zoey +Geschwister, nein danke!? +Ich will daß es aufhört +In drei Jahren vielleicht +In dreihundert Jahren vielleicht +Nick und das rote UFO +Papas Geheimnis +Philosophie Abenteuer Denken +Regenbogenfüße +Schüsse aus dem Walkman +Soundcheck für die Liebe +Verdammt nah dran +Wie Napoleon das schwarze Schaf rettete +Wüstenhaus Schönbrunn +Concerto futurismo +Das magische Auge II +Das magische Auge III +Drachen +Englisch, Meine ersten Wörter und Sätze +Erdbeben +Pflanzen, Blüten, Blätter und Samen +Forellenquintett +Autos +Geschichtslexikon +Insekten, Spinnen & Co +Labyrinthe der dritten Dimension +Musik A-Z +Pferde +Tag und Nacht +Vögel in Garten und Wald +Der grosse Sternenhimmel +Gestalten mit Speckstein +Papierschöpfen und gestalten +Don Quichotte +Kreativer Kunstunterricht +Sport unterrichten 3. Schuljahr +Sport unterrichten 4. Schuljahr +Der Linolschnitt +Keramikschmuck +Kunterbunte Laternen +Linolschnitt +Papiercollage für Einsteiger +Stoff, Garn, Wolle +Durch die Vergangenheit zur Gegenwart 2 +Letter search +Spielmusik für die Schule +Alltag im Mittelalter +Die fantastische Welt der Physik +3-D-art +Atlas der grossen Entdeckungen +Der Körper des Menschen +Die faszinierende Welt der Meere +Die faszinierende Welt der Pflanzen +Dinosaurier, wie sie lebten… +Faszinierende Welt der Tiere +Tausend Bilder Lexikon +Kammerstein und Teufelsmühle +Das aktuelle Europa-Lexikon +Meine Liesing +Die wilden Fußballkerle, Vanessa die Unerschrockene +Lauras Stern +Wieß weiß beschäftigt +Der Weltraum +Patagonien Feuerland +Papierflieger falten wie die Meister +Bebende Erde +Enzyklopädie der Reptilien&Amphibien +Enzyklopädie der Vögel +Insekten +Vom Greifen zum Begreifen +Rom - seine Geschichte, sein Glaube, seine Kinder +Überlebt, Als Kind in deutschen Konzentrationslagern +Was sind Essstörungen +Pädagogische Schulentwicklung +Frederick und seine Mäusefreunde +Anna Eisblume +Astronomie +Benni und die Wörter +Bis zum Showdown +Bittersüßer Sommer +Blueprint +Das Geheimnis des Herrn Guzman +Das große Fabulierbuch +Der Neue +Dichter leben +Dichter leben 2 +Die Königin der Farben +Die Märchen der vier Winde +Ein seltsamer Gast +EIN und ALLES +Fisch ist Fisch +Gefühle sind wie Farben +Goethe ist gut +Goldlöckchen und die drei bären +Heine ist gut +Hexensommer +Los Angeles und zurück +Nie wieder pauken +Schiller ist gut +Schreimutter +Sirrahs Träume +Solidarität ist die Zärtlichkeit der Völker +Unsere Orchideen +Tolle Tipps zum Basteln aus der Krims-Krams Kiste +Englisch für Kids +Alle Wunder dieser Welt +Die Erde +Die schönsten Sagen der Griechen +Eskimo +Ich glaub ich krieg ne Krise +Linnéa im Garten +I,Robot +Asterix und Kleopatra +Detektiv Conan +Donald Duck +Fix & Foxi +Lucky Luke +Mickey Maus +Phantomias +Tim und Struppi +Werner +Das hässliche Entlein +Mundhygiene +Von Taugenichts bis Steppenwolf +Biogarten +Magic +Europa +Bildungsforschung +Es lebte ein Kind in den Bäumen +Auf die Haltung kommt es an +Beiträge zur Lesedidaktik +Music from many lands +Einfach Farbig +Zwei Mäuse auf dem Mond +Lebendige Sprache 1 +Lebendige Sprache 2 +Richtige Ernährung +Wiener schulführer 2005 +Die Entführung aus dem Serail +Aus Moor und Heide +Donausagen +Komm und schau mit uns zu den Gewässern +Volkssagen aus aller Welt +Der Kinderbrockhaus 1 +Der Kinderbrockhaus 2 +Der Kinderbrockhaus 3 +Der Kinderbrockhaus 4 +Musiklexikon 1 +Musiklexikon 2 +Zehn kleine Raupenkinder +Der tote Knabe +Das Weltall +Der Mond +Polartiere +Detektiv Jan Winter, Den Dieben auf der Spur +Karo Karotte +Mein großes Buch der Tiere und Pflanzen +Marmor-mosaik +Sadakos Plan +Unser Kind fällt aus der Rolle +Cambridge english 2/students book +Cambridge english 2/workbook +Cambridge english 3/students book +Cambridge english for schools cassette A +Kenneth Lillys ANIMALS +Mischtechnik +Das Hexeneinmaleins +Der Baum des Lebens +Ein Fall für Freunde +Friedrich Schiller +Lesebuch zur Weltgeschichte +Matti und der Grossvater +Meins und deins +Panther im Keller +Und der Himmel schaut zu +Weltgeschichte +Bilder und Formen +Blaubeerland - Botvids Sommererinnerungen - +Harry Potter und der Feuerkelch +Harry Potter und der Gefangene von Askaban +Harry Potter und der Halbblutprinz +Harry Potter und der Orden des Phönix +Harry Potter und der Stein der Weisen +Harry Potter und die Heiligtümer des Todes +Harry Potter und die Kammer des Schreckens +Hundegeschichten vom Franz +Kühle Köpfe, Heiße Spuren +Mein Leben auf der Ritterburg +Opas Engel +Schnell wie der Wind +Wie buchstabiert man Gott? +Auf den Spuren von Tim und Struppi +Calvin und Hobbes +Comic Zeichenkurs +Die Peanuts Werkausgabe +Naruto +Der König der Welt +Säugetiere 2002 +Die Konferenz der Tiere +Als ich ein kleiner Junge war +Das Geheimnis der siebten Hexe +Das Schwein beim Friseur und andere Geschichten +Gullivers Reisen +Pu der Bär +Pünktchen und Anton +Ricky rennt +Raubkatzen +Papier +Bemalte Steine +Das Werkbuch +Fantasie für kleine Hände +Miniaturen auf Seide gemalt +Spiel und Spass mit Origami +Weihnachtskrippen +Wir basteln Weihnachtskrippen +Entdecke die Welt +Peter der Waldbauernbub +ABC +Mog the forgetful cat +The Lion, the Witch and the Wardrobe +Barfuß in die Kunst +Das kleine Buch für Kinder im Straßenverkehr +Komm entdecke die Sterne +Besser in Deutsch 7/8 Aufsatz +Das Eichhönchen +Das große Oxford Wörterbuch +Das Meerschweinchen +Deutschbuch Grundausgabe +Deutschbuch Kopiervorlage +Entdecken und verstehen 3 +Experimentieren mit Strom 3./4.Schuljahr +Fürst Magior und die Tobis +Gewichte 3./4.Schuljahr +Jeden Tag ein bisschen besser Deutsch 5 +Jeden Tag ein bisschen besser Deutsch 6 +Jeden Tag ein bisschen besser Deutsch 7 +Jeden Tag ein bisschen besser Deutsch 8 +Kleine deutsche Grammatik +Nisthilfen +Unsere Welt +Wir beobachten das Wetter 3.-4. Schuljahr Kopiervorlagen +Diktattrainer plus 3/4 Klasse +Englisch Vokabeltrainer +Lern-Vitamine +Leben Glauben Feiern +Anna und die Wut +Blackbox +Der dicke Kater Pegasus +Der Kampf um den Dachsstadel +Der Kampf um den Dachstadel +Die feuerrote Friederike +Elena +Fühl mal ob dein Herz noch schlägt +Ich heiße Nagekotsch und habe mich verlaufen +Mein Name ist Mobsdrillo +Mini muss in die Schule +Sei nicht sauer meine Süsse +Was der Papagei Lorenzo erzählt +Ernährung für Kinder +Länder und Völker Australien/Ozeanien +Länder und Völker Südamerika +Es war einmal das Leben .. das Gehirn - Band 8 +Cap und Capper +Mein erster Atlas +Jakob heimatlos +Die Moldau +Die Wut über den verlorenen Groschen +Peter und der Wolf +Peter und der Wolf/Karneval der Tiere +Symphonie no. 5 + no. 8 +Das fliegende Klassenzimmer +Die wilden Fussballkerle, Felix der Wirbelwind +Geschichtliche Weltkunde Bd 3 +Weltgeschichte im Aufriß Band 2 +Weltgeschichte im Aufriß Band 3 +Disney Zauberhafte Welten +Simpsons Wald und Wiesen Wahnsinn +Das große Märchenbuch +Die drei Räuber +Die wilden Kerle +Ich mach dich gesund, sagte der Bär +Wo die wilden Kerle wohnen +Das große Krabbeln +Wunderbare Tierwelt/Die Adler +Wunderbare Tierwelt/Die Bären +Wunderbare Tierwelt/Die Delfine +Wunderbare Tierwelt/Die Elefanten +Wunderbare Tierwelt/Die Löwen +Wunderbare Tierwelt/Die Schimpansen +Bagger +Das große Lexikon: Der Mensch +Regenwald +Silly sentences +Aus eigener Kraft +Vulkane +Die Stadt der Ritter +Ich will was wissen über Bagger +Der Rom und der Teufel +Der Aufsatz +Die schwarze Hexe +Emil und die Detektive +La Linea +Moby Dick +Nils Holgerson +Tintenherz +La pasta +Sagen des klassischen Altertums +Beziehung & Sexualität +Love, Sex und so… +Zum Thema Sucht +Christian und die Zahlenkünstler +Das geht doch nicht! +Das Isst kein Papagei! +Der Unsichtbare +Deutsche Heldensagen +Die Kinder-Uni +Die Uhr schlägt Mitternacht +Dtv-Atlas zur Biologie 1 +Dtv-Atlas zur Biologie 2 +Dtv-Atlas zur Musik/Band 1 +Ein Stück Himmel +Ich starb, aber die Erinnerung lebt +Kinder sind anders +Mein Geschichtenbuch für das 3. und 4. Schuljahr +Schattenkinder +Sonst noch was +Tea-Bab +Crash! Kurierdienst Rattenzahn +Damals war es Friedrich +Damals war es Friedrich +Der Buchstabenvogel +Die wilden Fußballkerle, Leon der Slalomdribbler +Lauter klare Fälle?! +Maia oder als Miss Minton ihr Korsett in den Amazonas warf +Duden die neue deutsche Rechtschreibung +Ein englisch-deutsches ABC +Schülerduden: die Biologie +Antike +Architektur +Das 20.Jahrhundert +Design +Die Radieschen-maus im Käseloch +Eine kurze Weltgeschichte für junge Leser +Farbgestaltung im Garten +Kunst +Die Welt der Mathematik 1/1 +Die Welt der Mathematik 1/2 +Die Welt der Mathematik 2/1 +Die Welt der Mathematik 2/2 +Funkelsteine 1/Lesebuch +Funkelsteine 1/Schreiblehrgang s95 +Funkelsteine 3/Arbeitsblätter +Schatzkiste 1 +Viele Wörter +Wortschatzkiste +Wortstark 2/Werkstattheft +Bumblebee 1 +Bumblebee 2 +Funkelsteine 3/Sprachbuch +Funkelsteine 4/Arbeitsblätter +Funkelsteine 4/Sprachbuch +Mathemaxl 3/Arbeitsblätter +Mathemaxl 3/Arbeitsbuch +Mathemaxl 4/Arbeitsbuch +Mia und Mo/Leseheft 1 +Mia und Mo/Leseheft 2 +Punktum- Arbeitsheft 3 +Wortstark 1 +Wortstark 1/Werkstattheft +Wortstark 2 +Wortstark 3 +Wortstark 3/Werkstattheft +Wortstark 4 +Wortstark 4/Werkstattheft +Katholische Privatschulen in der Erzdiözese Wien +Einst und heute 2 +Funkelsteine 1 +Schatzkiste 2 +Schatzkiste 3 +Schatzkiste 4 +Zahlenzug 3/Arbeitsheft +Didaktische Spiele zu Geografie und Wirtschaft +Faszination Erde 1 +Faszination Erde 2 +Faszination Erde 3 +Geschichte miterlebt 3 +Geschichten zur Geschichte +Geschichtsatlas 6.+7.Schulstufe +Gw-module 1 +Gw-module 2 +Horizonte 1 +Horizonte 2 +Lexikon zu Geografie und Wirtschaft +Panorama 1 +Weltbilder 1 +Playway to English 1 +Playway to English 2 +Schubert für die Schule +Das Paradies der Kinder +Pfeif der Angst ein Liedchen +Feine Thea Kochbuch No. 4 +Die Schwester der Vögel +Kleiner Mann des Lichtes +Regenzeit +Der Galgenstrick +Die Baumuhr +Die Blumen-Uhr +Die Früchte- und Samenuhr +Die Gartenuhr +Die grüne Uhr +Die Sonnen-uhr +Ein Turbofahrrad für Tintin +Schaf ahoi +Stark ohne Stoff +Die Räuber +A night in vienna +Anthology +Gipsy fire - Zigeunermusik +Rübezahl +Mobiles +Tierfiguren aus Ton +Abenteuer Im Mystery Park +Die Welt der Vulkane +Jugendzentrum Sherwood Forest +Julia und die Pferdefreunde +Das Eichhörnchen +Das Geheimnis der Hände +Das Huhn +Der Braunbär +Der Frosch +Der Hai +Der Marienkäfer +Der Schmetterling +Die Kuh +Die Pranke des Tigers +Okino und die Wale +Evangelisches Liederheft +Unter einem Himmel +Gartenschule +Keramik +Kicherhexen und Vampire +Kneten, modellieren und töpfern +Spielbare Witze für Kinder +Strohsterne in bunter Vielfalt +Was soll ich malen +Das Bären-Kinder-Buch +Das Eisbären-Kinder-Buch +Das Elefanten-Kinder-Buch +Das Schimpansen-Kinder-Buch +Ein Leben auf kurzen Beinen +Anne Frank Tagebuch +Das wahre Leben des Donald D. Entenhausens unglaubliche Geschichte +Der Fischer Weltalmanach +Der Schwarm +Die große Flatter +Die Spur des Löwen +Erziehung zum Menschen +Erziehung zum Menschen +Legasthenie - wie Eltern und Lehrer helfen können +Märchen aus dem Elsaß +Millionär +Rollermania +Theorien und Methoden der modernen Erziehung +Planeten +Fadenspiele +Streichholzspiele +Optische Täuschungen +The mirror Crack´d Form side to side +Das Leben Im Wassertropfen +Was lebt in Tümpel, Bach und Weiher +Oxford Book of Poetry for Children +Peddigrohr einmal anders +Perlenpower +Die Lehrzeit des Lucas Whitaker +Eine Freundin für Rachel +Madatan +Widukind +Schulatlas +Schulatlas Östereich +Schulatlas Unterstufe +Straßenkarte Europa +Energie +Musikinstrumente +Natur und Erkenntnis +Schwerindustrie +Grosse Welle, Bein und Stein +Mein Garten +Pusteplume oder Wie klaut man einen Opa? +Sundara. Vor uns das Leben +Franz-Welser-Möst +Deutschland im Mittelalter +Musica para los jameos del agua +Ausser der Reihe? +Der Palast des Cronnäch +Janosch der Mäusesheriff +Comics 50 Klassiker +Das visuelle Lexikon der Naturwissenschaften +Das Wetter +Der fliegende Koffer +Die ersten Menschen +Die visuelle Geschichte der Neuzeit +Die visuelle Weltgeschichte der Alten Kulturen +Die visuelle Weltgeschichte der Neuzeit +Erfindungen +Es war ein König in Thule +Gesteine&Mineralien +Haie und Rochen +Körper des Menschen +Lizzy und Lucas die Weltraumforscher +Menschlicher Körper +Nur ein kleines Samenkorn +Pferde das große Bilderlexikon +Teiche&Flüsse +Visuelle Weltgeschichte der alten Kulturen +Yellow Submarine +Food +Der Diamant des Salomon +Hägar der Schreckliche +Traumfänger +Traumreisende +Indianer Nordamerikas +Knoten +Tropische Regenwälder +Hoffnungsreich, Österreich-Album 1945-1955 +Alpenblumen +Feng Shui für jeden Garten +Feng Shui Garten für die Sinne +Garten spass +Gartengestaltung +Günstig gärtnern +Nadelbäume +Obst, Gemüse & Kräuter +Vögel in der Stadt +Getreide und Feldfrüchte +Laubbäume +Sterne ohne Himmel +Kochen mit Cocolino +Where the wild things are +Journal of gay & lesbian issues in education +Alexandra Superfetzig +Das Weihnachtstheater +Die Geschichte von Hase und Igel +Ein Geschenk für Jakob +Erste Hilfe für Lisa +Fliegender Pfeil +Gefahr für den kleinen Delfin +Hase und Igel +Hotte und das Unzelfunzel +Jakobus Nimmersatt +Kommissar Kugelblitz, Der Fall Kobra +Schorschi das Schulgespenst +Williwitt und der große Sturm +Winter 1./2. Klasse +Winter 3./4. Klasse +Wir sind die harten Piraten! +Das Schüler Gericht +Kreatives Papierschöpfen +POS-Kinder in Schule und Familie +Töpfern +Der menschliche Körper in 3D +Baroque garden for concentration +Das kreative Kind +Das kreative Kind +Die Bibel +Ein neues Jahr mit Mulle +Ein Platz für Mulle +Hauen ist doof +Ich in Bremen, du in Zürich +Kati und Strubbel +"Kinder fragen ""Wo wohnt der liebe Gott?""" +Kinder richtig motivieren +Lena - Unser Dorf und der Krieg +Märchenfrauen +Mit allen Sinnen die Welt erfahren +Mutterseelenallein +Plastikherzen bringen Pech +Schule des Kindes +Über Gott und Gummibärchen +Ubuntu - Schritte zwischen Schwarz und Weiß +Zehn Grundsätze des Erziehens +Kinder brauchen Orientierung +Berechnungen super einfach +Bewerbungen super einfach +Europäischer Computerführerschein +Text und Layout super einfach +Warm up Internet +Pumuckl und das Schlossgespenst +Lexikon der Musik +Kursbuch gesunde Ernährung +Mein Freund der Roboter +Politik und Gesellschaft Band 2 +Cancan and other dances +Die Zauberflöte +Komm, süßer Tod +Kippers Snowy Day +Hölzel-Weltatlas +Staatsvertrag +Geschichte der deutschen Literatur 1 +Geschichte der deutschen Literatur 1-4 +Geschichte der deutschen Literatur 2 +Geschichte der deutschen Literatur 3 +Geschichte der deutschen Literatur 4 +Aristocats +Bahn frei für Goofy +Bambis erster Winter +Benjamin Blümchen als Detektiv +Benjamin Blümchen auf dem Mond +Benjamin Blümchen in der Steinzeit +Benjamin Blümchen und die Schule +Blätter für die Koalas +Dalmatiner +Das Fest der tausend Lichter +Das Ungeheuer von Loch Ness +Der Lappenjunge und sein Rentier +Der verschwundene Fischotter +Die Kobolde sind los +Die Löwenkinder und Bombo +Die Schnitzeljagd +Donald bei den Mounties +Fiesta Mexicana +Goofy der Gaucho +König der Löwen +Neujahr im Reich der Mitte +Peter Pan +Susi und Strolchi +Wunderwelt Mensch +Experimente mit Spaß - Anorganische Chemie +Experimente mit Spaß - Magnetismus&Elektrizität +Experimente mit Spaß:Bewegungen und Kräfte +Experimente mit Spaß:organische Chemie +Experimentieren mit Lerngymnastik +Experimentieren mit Spaß:Hydro- und Aeromechanik +Experimentieren mit Spaß:Magnetismus +Lehrbuch der Physik 2 +Lehrbuch der Physik 3 +Mathematik-mach mit/Lehrerausgabe +Physik 2 +Die Deutsch-Schularbeit +Unsere Natur erforschen und erleben +Flieger aus Papier +Murmeln +Die heimliche Droge Nahrungsphosphat +Grand tour +Montessori zu Hause +Freund mit Schnauze +Die Entwicklung des Lebens +Und mich ruft das Flügeltier +Du und die Physik 2 +Abenteuer ABC2 Lese-/Schreiblehrgang +Abenteuer ABC2/Übungsbuch +Abenteuer Mathematik 1/Arbeitsbuch +Abenteuer Mathematik 1/Begleitheft +Abenteuer Mathematik 1/Übungsbuch +Abenteuer Mathematik 2/Arbeitsbuch +Abenteuer Mathematik 2/Übungsbuch +Abenteuer Mathematik 3/Arbeitsbuch +Abenteuer Mathematik 3/Übungsbuch +Aus alten Zeiten +Berufsplanung ist Lebensplanung Band 1 +Berufsplanung ist Lebensplanung Band 2 +Der liebe Herr Teufel +Der Riesenhans +Die schönsten Tiergeschichten +Ein- und zweijährige Kinder im Tagesheim +Heimat Niederösterreich +Heimat Wien +Imos Buchstabenreise-Begleitheft +Imos Buchstabenreise-Leselehrgang +Imos Buchstabenreise-Schreiblehrgang +Imos Buchstabenreise-Übungsbuch Teil 1 +Imos Buchstabenreise-Übungsbuch Teil 2 +Kinderängste +Lesespuren 2 +Matheblitz 1/Arbeitsbuch 1 +Matheblitz 1/Arbeitsbuch 2 +Matheblitz 1/Begleitheft +Matheblitz 1/Übungsbuch A +Matheblitz 1/Übungsbuch B +Matheblitz 2/Arbeitsbuch 1 +Matheblitz 2/Arbeitsbuch 2 +Matheblitz 2/Begleitheft +Matheblitz 2/Übungsbuch A +Matheblitz 2/Übungsbuch B +Matheblitz 3/Arbeitsbuch 1 +Matheblitz 3/Arbeitsbuch 2 +Matheblitz 3/Übungsbuch A +Matheblitz 3/Übungsbuch B +Matheblitz 4/Arbeitsbuch 1 +Matheblitz 4/Arbeitsbuch 2 +Matheblitz 4/Übungsbuch A +Matheblitz 4/Übungsbuch B +Mathematik für Regentage 2/Übungsheft +Mathematik spielend leicht 3/Teil 1 +Mathematik spielend leicht 3/Teil 2 +Mathematik spielend leicht 4/Teil 1 +Mathematik spielend leicht 4/Teil 2 +Mathematik spielend lernen 3/Arbeitsbuch +Mathematik spielend lernen 3/Arbeitsheft +Mathematik spielend lernen 3/Übungsheft +Mein drittes Mathematikbuch/Teil 1 +Mein drittes Mathematikbuch/Teil 2 +Mein erstes Mathematikbuch/Begleitheft +Mein erstes Mathematikbuch/Teil 1 +Mein erstes mathematikbuch/Teil 2 +Mein viertes Mathematikbuch/Teil 1 +Mein viertes Mathematikbuch/Teil 2 +Mein Wienbuch +Mein zweites Mathematikbuch/Begleitheft +Mein zweites Mathematikbuch/Teil 1 +Mein zweites Mathematikbuch/Teil 2 +Meine bunte Welt 2/Arbeitsbuch +Meine bunte Welt 2/Begleitheft +Meine bunte Welt 2/Übungsbuch A +Meine bunte Welt 2/Übungsbuch B +Meine bunte Welt 3/Arbeitsbuch +Meine bunte Welt 3/Begleitheft +Meine bunte Welt 3/Übungsbuch A +Meine bunte Welt 3/Übungsbuch B +Meine bunte Wörterwelt +Miteinander rechnen 3 +Pflanzen und Tiere um uns +Räumliches Wahrnehmungstraining/Konzentration +Räumliches Wahrnehmungstraining/Wahrnehmung +Rechnen mit dem Mathe-Bären 1/Begleitheft +Rechnen mit dem Mathe-Bären 1/Teil A +Rechnen mit dem Mathe-Bären 1/Teil B +Rechnen mit dem Mathe-Bären 2/Teil A +Rechnen mit dem Mathe-Bären 2/Teil B +Sprache entdecken - Arbeitsbuch +Sprache entdecken - Begleitheft +Sprache entdecken - Übungsbuch +Trine - ein Pferd zum Liebhaben +Unser Lesehaus 1, Arbeitsblätter +Wer war denn das? +Wien +Wien auf alten Bildern +Weihnachts Werkstatt +Der Spiegel im Brunnen +Dicke Freunde +Cézanne vollendet/unvollendet +Pablo Picasso +Das Geheimnis des gelben Vogels +Brauchen Kinder Religion? +Heilpflanzen +Pflanzen der Wiese +Der kleine Brehm +Auf Kinderfüßen durch die Welt/Begleitheft +Die Wikinger Zeitung +Komm mit ans Meer +Mensch! +Wir bauen ein Haus +Im Straßenverkehr +Das menschliche Gehirn und die Sinne +First time, first love +Mit Minka auf dem Bauernhof +Rot, blau und ein bisschen gelb +Burgenlandsagen und Legenden +Kursbuch Kinder +Der Zauberlehrling +Nathan der Weise +Nursery Songbook +Nachrichten aus einem unbekannten Universum +Grundsteine 1 +Grundsteine 2 +Grundsteine 3 +Kinder fordern uns heraus +Geheimnis am Holunderweg +Geheimnis um ein gestohlenes Bild +Geheimnis um ein verborgenes Zimmer +Geheimnis um eine giftige Feder +Geheimnis um einen nächtlichen Brand +Geheimnis um einen roten Schuh +Hans Platsch +Ramona +Verliebt? Verlobt? Vergiss es! +Filzen für Einsteiger +Sträucher +Die Sahara für Kinder erzählt +Würzköstlich kochen&backen +Fleisch preiswerte Gerichte +Süßspeisen einmal anders +Rothschild & Co +Alpentiere +Buchplan Wien Großraum +Pflanzen und Tiere +Kosmos Pflanzenführer +Mehr Tiere im Garten +Mein schönes Gärtchen +Mosaik im Garten +Sterne&Planeten +Kreative Kindermalschule +Hausbuch der österreichischen Geschichte +Wie begrüße ich korrekt den Freund meiner Tochter am Frühstückstisch? +Momo +Das unsichtbare Spektrum +Die Elemente und ihre Rangordnung +Der erfinderische Geist +Deutsche Dogge +Tiere auf der Schulbank +Goldilocks and the Three Bears +Ich bin gut drauf +Allora, andiamo! +Japanisch 1, Schlüssel zu Übungen +Langenscheidts power dictionary +Langenscheidts Schulwörterbuch Englisch +The new you & me 1/Textbook +The new you & me 2/Textbook +The new you & me 2/Workbook +The new you & me 3/Textbook +The new you & me 3/Workbook +The new you & me 4/Textbook +The new you & me 4/Workbook +The Rusty King +Universal-Wörterbuch Japanisch +Auf der Straße ist was los +Die schönsten Märchen aus 1001 Nacht +Die wahre Geschichte von allen Farben +Rede - die Macht des gesprochenen Wortes +Fossilien, Minerale und geologische Begriffe +Der Feuerwurm +Du und die Welt 1 +Biologie aktiv 1 +Einblicke Biologie 2 +Sagenhaft geheimnisvolle Geschichten aus der Steiermark +Volksschul-Liederbuch +Welt des Lebens 3 +Die Mathematik +Abenteuer In Illyrien +Auf Besuch bei fremden Freunden +Die Hunde Wakondas +Familienbande +Rückenwind für Vayu +Europa Atlas für Kinder +Abenteuer in Olympia +Beinhart, die Steinzeit +Der geheimnisvolle Ritter +Deutsche Literatur +Die abenteuerliche Welt der Wikinger +Die explosive Welt der Chemie +Die geheimnisvolle Botschaft +Die unendliche Welt der Planeten +Echt galaktisch das Weltall +Eine reizende alte Dame +Ella Vampirella +Englisch lernen mit den Geistergeschichten-Leselöwen +Familiengeschichten +Forscherhandbuch Mumien +Forscherhandbuch Ritter +Forscherhandbuch Weltall +Hochspannend die Elektrizität +Im Schatten der Akropolis +Indianergeschichten +Kinder aus aller Welt +Kleine Geschichten vom Igel Ingo +Mein lustiges Tier-ABC +Orkanstark, das Wetter +Pyramiden +Reine Männersache +Rotkäppchen und der böse Wolf +Sissi, Eine Prinzessin für den Kaiser +Sissi, Schicksal einer Kaiserin +Spurensuche am Nil +Technik +Die faszinierende Welt des Körpers +Mein Körper gehört mir +Ohne Eltern geht es nicht +Was kinder brauchen +Ein Kätzchen kommt zur Welt +Waldviertler Sagenwelt +Macmillan Childrens Books +Garland of rhythm +Übungsbuch zur deutschen Grundgrammatik +Lexipack 1 +Lexipack 2 +Lexipack 3 +Lexipack 4 +Zumutungen +Aufsatzschreiben 2 +Bausteine und Spielregeln unserer Sprache 5./6. Klasse +Grammatik 7./8.Klasse +Vorsicht Fehler! +Der Körper +Im Reich der Insekten +Sternenhimmel und Planeten +Verkenne nie das treueste Herz +Encarta 2000 +Encarta 99 +Bruder +Der Geier und das Mädchen +Karneval der Tiere +Wenn Hasen tanzen +Kognitive Entwicklung und zerebrale Dysfunktion +Körperwahrnehmung und Körpergeschick +Basteln mit Papier +Bunter Bildatlas der Insekten und Spinnen +Bunter Bildatlas der Vögel +Gartenblumen +Rosen +Zeige und erkläre mir die Erde +Österreichs sagenschatz +Das Becherlupenbuch +Die schönsten Hüpfspiele +Dino-Krebse +Die Jahreszeiten +Ein Menü für jeden Tag +Der Ring +Im Wald der Werwölfe +Das allerkleinste Nachtgespenst +Das Gänse-Kinder-Buch +Garten ein Paradies für Kinder +Der NÖ Naturgartenratgeber +Niederösterreich Haustier Ratgeber +Hochbegabung/Info für Lehrer +Berni +Der Regenbogenfisch +Pinguin Pit +Pferde&Ponys +Da komm ich her, da bin ich daheim +Die Bibliothek +wunder.orte|zauber.zeichen - Sagenwege durch Wien +Mit Vielfalt umgehen +Wunderwelt Wassergarten +Historischer Weltatlas +Österreich - Touring Revue +Anatol der Theaterkater +Da kichert der Elefant +Das quiek-fidele Borstentier +Das Wrack unter dem Leuchtturm +Der kleine Fuchs +Die Geschiche von der kleinen Gans, die nicht schnell genug war +Die Kirschenfrau geht in die Luft +Drachen, Teufel, Geisterspuk +Krok bleibt am Ball +Mees macht Geschichten +Das ADS Buch +100 Kinderfragen zur Natur +Auslesebuch 3 +Bausteine für den Deutschunterricht 3 +Blickpunkt Mathematik 1 +Brücken - interkulturelles Lesebuch +Der Mäusesheriff +Deutsch für die 2.Schulstufe +Deutsch für die 4.Schulstufe +Deutsch Intensiv 1 +Erlebte Sprache 3 +Frohes Lernen +Lesebuch 1 +Lesebuch 2 +Lesebuch 3 +Lesebuch 4 +Mathematik positiv, Arithmetrik, Geometrie 1.Klasse +Minimondo 2 +Minimondo 3 +Sprachbuch 1 +Sprachbuch 2 +Sprachbuch 3 +Sprachbuch 4 mit Computer Nutzung, 4. Klasse +Sprachklub 4 +Sprachklub 4, Übungsmappe +Kids Story Book +1,2,3 go 1.Klasse +Aufsteigen in Deutsch 1/ Rechtschreiben +Aufsteigen in Deutsch 1/Grammatik +Basiswissen 1+2 +Basiswissen 2 +Basiswissen 3 +Caesar +Cicero/Reden +Conrad & Company, Acitivity Book 2 +Das ist Mathematik 1/Lehrerausgabe +Das ist Mathematik 3/Lehrerausgabe +Deutsch 2 +Entdeckungsreisen 2 +Erlebnis Zeitreise 1 +Erlebnis Zeitreise 2 +Erlebnis Zeitreise 3 +Erlebte Sprache 2/Begleitheft Lehrer +Erlebte Sprache 2/Rechtschreibung, Arbeiten am Text +Erlebte Sprache 2/sprechen-schreiben +Erlebte sprache 3/Rechtschreibung, Zusatzübungen +Gemeinsam haushalten +Geometrische Bilder 3 +Geometrische Bilder 3+4 +Geometrische Bilder 4 +Geometrisches Zeichnen 3 +Geschichten erzählen/Frühe Neuzeit +Geschichten erzählen/Imperialismus, Krieg +Geschichten erzählen/Mittelalter +Geschichten erzählen/Urgeschichte, frühe Hochkultur +Intensivkurs Rechtschreiben/Groß-&Kleinschreibung +Intensivkurs Rechtschreiben/Satzzeichen, Diktate, Übungen +Kids 1 +Kids 1 activity book +Kids 1 video +Kids 2 activity book +Kids 2 steps 2 +Kids 3 +Kids 3 activity book +Kids 4 +Kids 4 activity +Kleines österreichisches Wörterbuch +Klio +Lebendige Mathematik 1 +Lebendige Mathematik 2 +Lebendige mathematik 3 +Lebendige Mathematik 3/Lösungen +Lehrbuch der Mathematik 1 +Lehrbuch der Mathematik 2 +Lehrplan der Sonderschulen +Lesen mit Pfiff 2 +Lesen mit Pfiff 4 +Lesen&verstehen 2 +Lösungen zum Lehrbuch der Mathematik 2 +Ludus I +Materialien zu Erlebnis Zeitreise 1-3/Zeitbilder 2-4 +Materialien zur Geschichte +Mein Wörterschatz +Minimondo NÖ 4 Stufe +Mit Pfiff ... die Welt erkunden 2 +Österreichisches Wörterbuch +Physik erleben 2 +Physik erleben 3 +Physik in unserer Welt 3 +Physik verstehen 2 +Physik verstehen 3 +Physik verstehen 4 +Projekt Verkehr +Richtige Reihen bilden - Serialität 3 +Sagen aus dem Burgenland +Sagen aus der Steiermark +Sagen aus Kärnten +Sagen aus Niederösterreich +Sagen aus Oberösterreich +Sagen aus Salzburg +Sagen aus Tirol +Sagen aus Vorarlberg +Sagen aus Wien +So schön ist Chemie 4 +Sprungbrett Sprache 1 +Sprungbrett Sprache 2 +Technik im Alltag +Unser Sprachbuch Schulschrift 1995 +Welcher Buchstabe liegt richtig? - Raumorientierung +Welcher Buchstabe liegt richtig? - Raumorientierung 3 +Wort und Bild +Zeichnen 1 +Zeichnen 2 +Zeichnen 3 +Zeichnen 4 +Zeitbilder 2 +Zeitbilder 3 +Zeitbilder 4 +Zeiten, Völker und Kultur +Als Adam Engelbrecht so richtig wütend wurde +Als Michel den Kopf … +Anne Frank +Anne Frank (Bildband) +Armer Pettersson +Astrid Lindgren Erzählungen +Astrid Lindgren Lesebuch zum 100. Geburtstag +Besuch bei Astrid Lindgren +Britt-Mari erleichtert ihr Herz +Childrens day in Bullerbü, mit CD +Das entschwundene Land +Das Geheimnis von Darkwater Hall +Das große Astrid Lindgren Liederbuch +Der Buchstaben-Fresser +Der Drache mit den roten Augen +Der Tag an dem Michel besonders nett sein wollte +Die Kinder aus Büllerbü +Die Kinder aus der Krachmacherstraße +Die Olchis aus Schmuddelfing +Die Olchis sind da +Die Olchis werden Fußballmeister +Die Puppe Mirabell +Du&Du&Du +Eine Geburtstagstorte für die Katze +Erzählungen +Ferien auf Saltkrokan +Feriengeschichten vom Franz +Im Land der Dämmerung +Immer dieser Michael +Jule und die Seeräuber +Karlsson vom Dach +Kasimir näht +Kasimir pflanzt weisse bohnen +Kasimir tischlert +Kati in Italien +Kati, in Paris +Kennst du Pippi Langstrumpf? +Kindertag in Bullerbü +Kindertheaterstücke +Klingt meine Linde +Komm mit mir raus +Krankengeschichten vom Franz +Lesebuch +Lesebuch 2005/06 +Lotta kann fast alles +Lotta zieht um +Madita +Madita und Lisbet aus Birkenlund +Malin im Dschungel +Märchen +Mehr von Michel aus Lönneberga +Mein Smaland +Michel aus Lönneberga +Mio, mein Mio +Mit Jakob wurde alles anders +Na klar, Lotta kann radfahren +Natürlich ist Lotta ein fröhliches Kind +Nisse beim Friseur +Nisse geht zur Post +Pelle zieht aus und andere Weihnachtsgeschichten +Pippi außer Rand und Band +Pippi feiert Geburtstag +Pippi im Taka-Tuka-Land +Pippi Langstrumpf +Polly hilft der Großmutter +Rasmus und der Landstreicher +Rasmus und der Schwertschlucker +Rasmus, Pontus und der Schwertschlucker +Raubtier +Ronja Räubertochter +Sammelaugust und andere Kinder +Schulgeschichen vom Franz +Sonnenau +Steine auf dem Küchenbord +Tomte Tummetott +Tomte und der Fuchs +Une fête des enfants à bullerbü, mit CD +Voll ins Herz und voll daneben +Von Gestern und Morgen +Von Kletterbäumen, Sachensuchern und kitzligen Pferden +Warten auf Weihnachten +Weihnachtsgeschichten vom Franz +Wenn Weihnachten kommt +Zauberspuk beim Weihnachtsmann +Zum Donnerdrummel +Märchen 1 +Märchen 2 +Märchen 3 +Märchen 4 +Oetinger interaktiv cd-roms 2003 +100 Jahre Amtshaus Liesing +4 Millionen Jahre Mensch +ABC der Berufsbildenden Schulen 2002 +Anders als erwartet +Berufslexikon 1 +Berufslexikon 2 +Boabab +Club musik 2 +Dein Recht im Alltag +Der Euro +Der kleine Indianer +Der kleine Shang +Die Kinderwelt der Donaumonarchie +Du magst mich Religion 1 +Duden Literatur +Durch die Zeit Geschichte 2.Klasse +Durch die Zeit Geschichte 3.Klasse +Ein Sommernachttraum +Familien +Faszination Tier&Natur +Geschichte +Große Zahnpflege Mentadent +Kriegsmusik - Adolf Hitler +Leben und Umwelt 1 +Lehrlinge bei Merkur +Lieder für die Raupe Nimmersatt +Liederbuch Religion/Grundschule +Meditative Klaviermusik +Mit Lust und Liebe +Mit Manga zeichnen lernen +Mothers finest live +Nach der Schule in die Praxis +Nadine undTobias erforschen den Verpackungskreislauf +Neue Sagen aus Kärnten +Newton +Niederösterreich Im Wandel der Zeiten +Österreichs Jahrhundert +Pferde Foto +Pferde, Pferde, Pferde +Power girls zeichnen leicht gemacht +Ratgeber: Recht, HIV und AIDS +Rätselhafte Tierwelt +Salamandastron +Sexuelle Orientierung +Sie liebt sie, er liebt ihn +Speckstein +Strauss Gala +Stundenblätter Lessings Nathan und die Literatur der Aufklärung +Symphony no.1 Titan +Traumzeit +Umwelt macht Schule +Unsere große Welt +Wanker 2 CD 1 +Wanker 2 CD 2 +Wanker 2 CD 3 +Wetter und Klima +Wie Erdbeer und Zitrone +Wie kommt die Mine in den Bleistift? +Wiener Wasser Almanach +Zeigt her eure Füße! +Zeit Räume +Zukunft +Gesundheit +Biogarten Handbuch +Die Gemüse-Detektive +Sag mir, wo der Pfeffer wächst +Der gesamte Mathematik-Unterricht/2.Stufe +Gz handbuch +Kannst du das? +Mathematik 1 +Mathematik 2 +Mathematik 3 +Mathematik 4 +Übungsblätter für den Grammatikunterricht 6. Klasse +Der seltsame Tausch und andere Geschichten +Ich schenk dir eine Geschichte +Immer dieser Pumuckl +Meister Eder und sein Pumuckl +Pumuckl spukt weiter +Schulgarten +Einladungs-, Gruss- und Glückwunschkarten +Advent- und Weihnachtslieder +Blumen&Garten +Der Mensch im All +Handarbeiten +So kamst du auf die Welt +Childrens Treasury +Little red riding wolf +Nursery Stories +Menschenbilder - Astrid Lindgren +Musik für Streicher +Musikalische Kostbarkeiten aus Niederösterreich +Gute Nachricht Bibel +Leben auf dem Lande +Katzen, Hunde und andere Haustiere +Wortprofi +William Shakespeare +Sherlock Hilmes +The Canterville Ghost +The Hound of the Baskervilles +Winnie the Witch +Die Luft Werkstatt +Können Schmetterlinge hören? +Woher weiß der Toast, wann er fertig ist? +Die Licht Werkstatt +Mc Giny´s Dead +Erde und Weltall +Das Meer +Welt der Wissenschaft +Freiheit nimmt man sich +Im Supermarkt der Religionen +Katharinas Entscheidung +Die große Kinderbibel +Wir feiern Erntedankfest +Kunstuntericht 5/6 +Our town the skin of our teeth the Matchmaker +Geschichten aus der Natur +Love Child +Das Bärenwunder +Die Werkstatt der Schmetterlinge +Vom kleinen Maulwurf +Der Löwenzahn +Was ist los mit Ramon? +A little peace and quiet +Im Zeichen des Löwen +Arrow to the sun +Augustus +Pons express english +August Macke; Reise in ein fernes Land +Der blaue Reiter +Leonardo da vinci +Paul Klee, Bilder träumen +Technisches Museum Wien +Die motorische und perzeptuelle Entwicklung des Kindes +Ich und du, du und ich +Schmetterlinge +Mother Goose +The Love for Three Oranges +Das Paradies der Kinder +Rabbits +Der kleine Prinz +Alles was ich wissen will +Aufs Pferd! +Basteln +Catweazle der große Zauberer +Das Fussball Buch +Das große Buch vom Körper +Das Literatur-Lesebuch +Das neue Europa +Das Sprachbastelbuch +Der kleine Brüllbär hat Geburtstag +Der kleine Brüllbär ist krank +Die Welle +Eine Art Familientreffen +Es brennt! +Experimente für alle Sinne +Fun and Games in London +Gartenbuch der Kinder +Geschichten aus 1001 Nacht +Im Labyrinth der Sphinx +Indianer +Kinderfragen kennen kein Tabu +Lexikon der Erde +Lexikon der Weltgeschichte +Nicht sprechen, nicht schweigen, nicht gehen, nicht bleiben +Oliver Twist +Quiz&Co 2 box A +Quiz&Co 2 box B +Und was kommt nach tausend? +Unser Wetter +Warten bis der Frieden kommt +Warum ist das Wetter so? +Was ist los mit meinem Kind? +Was lebt in unserem Garten +Buntpapiere selber machen +Das grosse Ravensburger Werkbuch +Kinderatelier +Kinderwerkstatt Holz +Ravensburger Basteljahr +Ravensburger Kindermalschule +Spielsachen aus Ton +Werkbuch Papier +An den christlichen Adel deutscher Nation +Aus dem Leben eines Taugenichts +Das Nibelungenlied +Der abenteuerliche Simplicissimus +Der arme Heinrich +Der gallische Krieg +Der Hochwald +Der Mann mit den Messern +Der Talisman +Der zerbrochene Krug +Die Aufzeichnungen des Malte Laurids Brigge +Die Geschichte des kleinen Muck / Der Zwerg Nase +Die Geschichte von Franz Biberkopf +Die Leiden des jungen Werther +Die Verwandlung +Ein treuer Diener seines Herrn +Elektra +Emilia Galotti +Evangelienbuch +Faust 1 +Faust 2 +Gedichte +Irrungen, Wirrungen +Kleider machen Leute +Krambambuli +Künstlernovellen +Lieder +Lieutenant Gustl +Meistergesänge/Fastnachtspiele/Schwänke +Münchhausen +Nathan der Weise Erläuterungen und Dokumente +Neue Lebensansichten eines Katers +Nußknacker und Mäusekönig +Parzival +Pole Poppenspäler +Tristan +Trotz allem Mensch sein +Woyzeck / Leonce und Lena +Wunderlicher traum von einem großen Narrennest +Rechenigel 1 /Erarbeitungsteil +Rechenigel 1/Lehrerband/Teil1 +Rechenigel 1/Lehrerband/Teil2 +Rechenigel 1/Übungsbuch/Teil 1 +Rechenigel 1/Übungsbuch/Teil 2 +Rechenigel 2/Erarbeitungsteil +Rechenigel 2/Lehrerband/Teil 1 +Rechenigel 2/Lehrerband/Teil 2 +Rechenigel 2/Übungsbuch/Teil 1 +Rechenigel 2/Übungsbuch/Teil 2 +Rechenigel 3/Erarbeitungsteil +Rechenigel 3/Lehrerband/Teil 1 +Rechenigel 3/Übungsbuch +Rechenigel 4/Erarbeitungsteil +Rechenigel 4/Lehrerband/Teil 1 +Rechenigel 4/Übungsbuch +Assel Schlamassel +Eine Straße für Kinder +Absprung +Kinder brauchen Grenzen Eltern setzen Grenzen +Körpergefühl +Walt Disney +Wenn Paare Eltern werden +Wilhelm Busch +Wie fragt man Löcher in den Bauch +Lebensraum Liesing +Montessori-Schulen +Sophiechen und der Riese +Sprachabschneider +Zu Heilen die zerstossnen Herzen +Ouvertüren + Violinromanzen +Wasserforscher&Luftikusse +Peanuts Guide to Life +Allgemeine und anorganische Chemie +Chemie Unterstufe +Organische Chemie +Länderlexikon 2 +Länderlexikon 3 +Länderlexikon 4 +Länderlexikon 5 +Länderlexikon 6 +Länderlexikon1 +Gespensterjäger auf eisiger Spur +Sorge dich nicht - lebe! +Wie man Freunde gewinnt +A Chair for my Mother +Bildende Kunst 1 +Bildende Kunst 2 +Bildende Kunst 3 +Chemie heute, Sekundarstufe I +Geschichte konkret 1 +Lesebuch 65, 4. Schuljahr +Nathan der Weise +Nathan der Weise Arbeitsheft +Physik +Städtepläne Österreich +Quer durchs dritte Rechenjahr +Sachrechnen 3 +Das Astrid Lindgren Lexikon +Grosser Autoatlas +Kulinarische Streifzüge durch Deutschland +Kulinarische Streifzüge durch Österreich +Wie gut dass du da bist +The glenn gould edition +Paletti 3.Schuljahr +Paletti 4.Schuljahr +Retrospect 2000 1-6 +Retrospect 2000 7-8 +Ambika +Gut eingekauft +Echt Tierisch +Das ist Südafrika +Die Wolke +Vater und Sohn +Vater und Sohn, 3 Bände Sonderausgabe +Immer Krach um Teller, Topf und Bett +Kräutergarten +Neue Mandalas für Kinder +Wie Tiere laufen, hüpfen, klettern, kriechen +Farben und Licht +Was kinder gerne basteln +Die Stadt der wilden Götter +Derek jarmans garden +Rund um den Körper +Das kleine Buch der Bäckereien +M.C.Escher Kaleidozyklen +The graphic work +Galapagos +Ritter Rost +Bauten +Berühmte Ärzte +Bienen und Ameisen +Brücken +Burgen des Mittelalters +Das große Buch der Pyramiden +Das große Buch der Ritter +Das Mikroskop +Dein großes Abenteuer, Bei den Dinosauriern +Der Kampf um den wilden Westen +Der Regenwald +Der Urmensch +Die Gene +Die Germanen +Die Sterne +"Die unglaubliche Reise ""an den Rand des Universums / ins Innere des Atoms""" +Die Zeit +Dinosaurier +Erde und Atmosphäre +Erstes Pferdebuch für Kinder +Fische +Fossilien +Griechenland +Heimtiere +Hunde +In Haus und Garten +Islam +Katzen +Messen, berechnen und computern +Münzen und Geld +Muscheln und Schnecken +Pharaonen +Pinguine +Planeten und Raumfahrt +Reptilien und Amphibien +Sehen, Licht und Farbe +Sind wir allein im All? +So lebten sie im alten Griechenland +Tesloffs Buch der Evolution +Tessloffs Buch der Evolution +Unsere Erde +Von Höhlen bis zum Wolkenkratzer +Wale und Delfine +Wikinger +Wüsten +Physik Alles Wissen auf einen Blick +Vom Einbaum zum Atomschiff +Vulkane +Atlas des Mittelalters +4 1/2 Freunde und das Krokodil im Internet +Colleen +Das tolle Trio jagt den Goldfisch +Der Hurone +Der Ruf der Steppe +Der Schatz von Atlantis +Die Chaosfamilie +Die Geschichteninsel +Die kleine Hexe +Die Reise zu den weissen Pferden +Die Superhexen +Die Welt steht Kopf +Fliegender Stern +Gruselnacht im Klassenzimmer +Lieben verboten +Mathe, Stress und Liebeskummer +Olga da Polga, Ihr bester Freund +Prinz Franz total verliebt +Risotto Criminale +SALAMANDASTRON, Die Jagd nach dem Schatz +Urmel kommt zur Welt +The Gallirraphy work book +Alaska +Australien +Borneo +Das afrikanische Rift Valley +Das Leben Im Wasser +Das Mississippidelta +Das unbekannte Europa +Der Amazonas +Der Aufstieg Russlands +Der australische Busch +Der Grand Canyon +Der Himalaya +Der Mensch der Vorzeit +Die Anden +Die Everglades von Florida +Die nordwestküste Amerikas +Die Primaten +Die Rocky Mountains +Die Sahara +Die Wälder Kanadas +Die Wildnisse Neuenglands +Die Zeit der Ägypter und Griechen +Hawaii +Klassisches Griechenland +Labrador +Lappland +Niederkalifornien +Russland:Wüsten und Berge +Sehenswürdigkeiten der Welt +Rund um die Welt +Das Dschungelbuch +Gespensterspuk um Mitternacht +Optische Illusionen Band 1 +Optische Illusionen Band 2 +Schularbeitstraining 4.Klasse +So trainiere ich besser Lesen +So trainiere ich mein Deutsch +Die Abenteuer des Odysseus +Du machst mein Leben schön 2 +Du magst mich 1 +IWEIN, Der Ritter mit dem Löwen +Iwein, der Ritter Mit Dem Löwen +Jesus - ein Kind wie Lisa und Benjamin? +Johannes der Wegbereiter +Fernsehen mit Kindern - Ratgeber für Eltern +Neue Medien in der Grundschule +Ötzi, Sisi und Co. +Sagen aus der Steiermark +Sagen aus Niederösterreich +Die abenteuerliche Reise der Clara Wynn +Die Stunde des roten Drachen +Kein Wort zu niemandem +Alpensagen +Das Frankenstein-Monster +Das Österreich Quiz +Der kleine Ägypter +Der kleine Wikinger +Die Flohmarktdiebe +Ferien am See +Große Liebe Nr.1 +Herz und Beinbruch +Jugend Sucht Sinn +Kluge Katze, kluger Hund +Leas Traum vom Tanzen +Mia entdeckt die Tiere im Wald +Paul, der Polizist +Rosa, die kleine Prinzessin +Sagen aus Österreich +Tanz über dem Abgrund +Tim bei der Feuerwehr +Weg in die Freiheit +Weil wir was zu sagen haben +Anatomica komplettes Nachschlagewerk +Tippi aus Afrika +Tippi aus Afrika +Unicef Kochbuch +Zur Zeit der Pharaonen +Lieber Potti … +Attack of ... Snow Goons +Das Geheimnis der kleinen Krähen +Der schwarze Rucksack +Infames Spiel +Sonnenkind +South on 61 +Big cats +Farmyard Tales Christmas +First thousand words +Prehistoric world +The usborne first dictionary +Under the sea +Befreite Bahnen +Befreite Bahnen +Weißt du wieviel Sternlein stehen? +Die Elektro-Werkstatt +Hatten Dinos Karies? +So wird die Rübe zu Zucker +ABC Reise +ABC Reise/Arbeitsheft +ABC Reise/Schreiblehrgang +ABC Reise/Schreiblehrgang Druckschrift +Aktion Sprache 1 +Aktion Sprache 2 +Aktion Sprache 3/4 +Aktiv lernen - Berichte, exzerpieren, referieren +Aktiv lernen - Bunte Schreibwerkstatt 9-13J +Aktiv lernen - Oberfläche und Volumen +Aktiv lernen - Textaufgaben +Aktiv lernen - Umfang und Fläche +Aufgabensammlung Mathematik 1 +Aufgabensammlung Mathematik 2 +B&U 1 +B&U 1 - Arbeitsteil +B&U 2 +B&U 2 - Arbeitsteil +B&U 3 +B&U 3 - Arbeitsteil +B&U 4 +B&U 4 - Arbeitsteil +B&U, Biologie&Umweltkunde +Bio@school 5 +Biologie heute 1 +Biologie heute 1 - Arbeitsheft +Blickpunkt Erde 1 +Blickpunkt Erde 2 +Computerunterstützender Deutschunterricht 3 +Computerunterstützender Deutschunterricht 4 +Das Diktate-Buch +Das Literaturbuch 1 +Das Literaturbuch 2 +Das Literaturbuch/Lehrerbegleitheft +Deutschstunde 1/Basisteil +Deutschstunde 1/Lehrerbegleitheft +Deutschstunde 1/Teil a +Deutschstunde 1/Teil b +Deutschstunde 1/Zusatzteil A +Deutschstunde 1/Zusatzteil B +Deutschstunde 2/Basisteil +Deutschstunde 2/Lehrerbegleitheft +Deutschstunde 2/Zusatzteil A +Deutschstunde 2/Zusatzteil B +Deutschstunde 3/Basisteil +Deutschstunde 3/Lehrerbegleitheft +Deutschstunde 3/Zusatzteil A +Deutschstunde 3/Zusatzteil B +Deutschstunde 4/Basisteil +Deutschstunde 4/Lehrerbegleitheft +Deutschstunde 4/Teil A +Deutschstunde 4/Teil B +Deutschstunde 4/Zusatzteil A +Deutschstunde 4/Zusatzteil B +Durch die Vergangenheit zur Gegenwart 2 - Rätsel und Lernheft +Durch die Vergangenheit zur Gegenwart 3 +Durch die Vergangenheit zur Gegenwart 4 +Durchstarten in Deutsch Grammatik +Durchstarten in Deutsch/7.Stufe +Durchstarten in Englisch +Durchstarten in Englisch/7.stufe +Durchstarten in Englisch/7.stufe mit CD +Durchstarten in Englisch/8.stufe +Durchstarten in Englisch/8.stufe mit CD +Durchstarten in Mathematik 4.Stufe +Eine Reise durch NÖ +Eine Reise durch Wien +E-Learning in der Deutschstunde +Englische Lieder und Spiele +Entdecken, erleben, verstehen 1 +Entdecken, erleben, verstehen 2 +Entdecken, erleben, verstehen 3 +Entdecken, erleben, verstehen 4 +Findefix - Bildwörterbuch Englisch für die Grundschule +Findefix Wörterbuch ABC +fit und fix Heft 1/Nachschlagen 3./4. Stufe +fit und fix Heft 2/Rechtschreibung 3.Stufe +fit und fix Heft 3/Nachschlagen 2.Stufe +Friends 1 +Friends 1/Activity book +Friends 1/Course book +Friends 1/Förderheft +Friends 1/Grammar +Friends 1/Teachers book +Friends 2 +Friends 2/Activity book +Friends 2/Course book +Friends 2/Teachers book +Friends 3 +Geo-link 1 +Geo-link 2 +Geo-link 3 +Geo-link 4 +Geschichte live 2 +Geschichte live 2/Arbeitsteil +Geschichte live 3 +Geschichte live 3/Arbeitsteil +Geschichte, Sozialkunde, politische Bildung 6.stufe +Interaktiv durch Europa +KEK 2 Das Lesebuch/Lehrerbegleitheft +KEK 2 Das Lesebuch/Sprachbuch 1 +KEK 2 Das Lesebuch/Sprachbuch 2 +Kek 2 Das Sprachbuch/Arbeitsbuch A +Kek 2 Das Sprachbuch/Basisteil 1 +Kek 2 Das Sprachbuch/Basisteil 2 +Kek 2 Das Sprachbuch/Lehrerbegleitheft +Kek3 Das Lesebuch Arbeitsbuch +Kek3 Das Lesebuch Basisteil +Kek3 Das Lesebuch Lehrerbegleitheft +Kek3 Das Sprachbuch Arbeitsbuch A +Kek3 Das Sprachbuch Arbeitsbuch B +Kek3 Das Sprachbuch Basisteil 1 +Kek3 Das Sprachbuch Basisteil 2 +Kek3 Das Sprachbuch Lehrerbegleitheft +Learn english - just sing +Leben und Umwelt kompakt 2 +Leben und Umwelt kompakt 3 +Leben und Umwelt kompakt 4 +Lernhilfe Mathematik 1 +Lesen mit Pfiff 3 +Lesereise 2 +Lesereise 2/Lehrerbegleitheft +Lesereise 3 +Lesereise Niederösterreich +Lesereise Wien +Lesestunde 1/Teil A +Lesestunde 1/Teil B +Lesestunde 2/Teil A +Lesestunde 2/Teil B +Lesestunde 3/Teil A +Lesestunde 3/Teil B +Lesestunde 4/Teil A +Lesestunde 4/Teil B +Lesezeit 1/Lesetraining +Lesezeit 1/Literaturheft +Lesezeit 1/Texte +Lesezeit 2/Lesetraining +Lesezeit 2/Literaturheft +Lesezeit 2/Texte +Lesezeit 3/Lesetraining +Lesezeit 3/Literaturheft +Lesezeit 3/Texte +Lolli und Pop auf Wörtersuche 1/Arbeitsheft +Lolli und Pop auf Wörtersuche 2/Arbeitsheft +Lollipop das österreichische Volksschulwörterbuch +Mathematik entdecken 1/Teil A1 +Mathematik entdecken 1/Teil A2 +Mathematik entdecken 1/Teil B +Mathematik entdecken 2 /Teil 1 +Mathematik entdecken 2/Teil 2 +Mathematik entdecken 3 +Mathematik entdecken 3/Teil 2 +Mathematik entdecken 4 /Teil 1 +Mathematik entdecken 4/Teil 2 +Meilensteine der Geschichte 2 +Meilensteine der Geschichte 3 +Mimi die Lesemaus +Mimi, die Lesemaus/Arbeitsheft +Mimi, die Lesemaus/Schreibschriftlehrgang +Mimi, die Lesemaus/Übungsheft +Netzwerk Geschichte 2 +Neue Advent und Weihnachtslieder +OK/1304 +Physik heute 2 +Physik heute 4 +Physikstunde 4 +Planeten Quadrat Erde +Planquadrat Erde 2 +Planquadrat Erde 3 +Politik verstehen +Politik verstehen/Kopiervorlage +Spaß beim Forschen und Entdecken 1 +Spaß beim Forschen und Entdecken 2 +Spaß beim Forschen und Entdecken 3 +Spaß beim Forschen und Entdecken 4 +Sprachmeister 2/Teil 1 +Sprachmeister 2/Teil 2 +Sprachmeister 3/Teil 1 +Sprachmeister 3/Teil 2 +Sprachmeister 4/Teil 1 +Sprachmeister 4/Teil 2 +Sprachreise 2 +Sprachreise 2/Arbeitsheft +Sprachreise 3 +Sprachreise 3/Arbeitsheft +Sprachreise 4/Arbeitsheft +Umweltreise 1 +Umweltreise 2 +Umweltreise 3 +Umweltreise 4 +Welt des Lebens 2 +Zahlenreise 1/Erarbeitungsteil +Zahlenreise 1/Lehrerbegleitheft +Zahlenreise 1/Übungsteil A +Zahlenreise 1/Übungsteil B +Zahlenreise 2/Erarbeitungsteil +Zahlenreise 2/Lehrerbegleitheft +Zahlenreise 2/Übungsteil A +Zahlenreise 2/Übungsteil B +Zahlenreise 3/Erarbeitungsteil +Zahlenreise 3/Übungsteil A +Zahlenreise 3/Übungsteil B +Zahlenreise 4/Erarbeitungsteil +Zahlenreise 4/Lehrerbegleitheft +Zahlenreise 4/Übungsteil A +Zahlenreise 4/Übungsteil B +Zum Beispiel Mathematik 4 +Ants kleines Blumenbuch +Auf Spurensuche +Baumwolle eine Aktivmappe +Das große Übungsbuch zur neuen Rechtschreibung +Der Satzbaukasten +Die Insekten-werkstatt +Die Kleintier-werkstatt +Die Regenwurmwerkstatt +Die Spinnenwerkstatt +Die Stromwerkstatt +Emil und die Detektive +Es wächst, es wächst +Filzen im Unterricht +Fremde Texte verstehen und gute eigene Texte schreiben 2 +Fremde Texte verstehen und gute eigene Texte schreiben 3 +Fremde Texte verstehen und gute eigene Texte schreiben 4 +Grammatiktraining&Wortarten: Verben +Igel-kartei +Mandalas +Marmorieren im Unterricht +Mein Betriebspraktikum +Profi von Anfang an +Schokolade +Schreibhandwerk +Simulationen zur Weltgeschichte +Sinne erschließen die Umwelt +So erkläre ich Geografie +So schreibst du spannende Geschichten 3/4 +Sprachschatz +Sterben Äpfel auch? +Subjekt Prädikat Objekt +Text und Geschichtenwerkstatt +Umsonst geht nur die Sonne auf +Utopolis/Demokratisch leben lernen +Vom Warentausch zum Euro +Wasser Geräusche Spiel +1,2,3 mit allen Sinnen +Das neue Testament +musst du auch sterben? +Das Mädchen Jeanne D'Arc +Das Osterlamm +Der Schildwall +Fahrt ins Unbekannte +Lied für eine dunkle Königin +Rettet den großen Kahn +Steine Spuren Labyrinthe +Mach mit Mathematik Lehrerausgabe 1 +Mathematik Schularbeiten 1.Klasse +Ich habs - Mathe 1 +Ich habs - Mathe 3 +Ich habs - Mathe 4 +… aber morgen ist die Erde wieder jung +Die Kaiserin von Anderswo +Ei, was sprießt denn da? +Ich war dabei +Mami hat ein Ei gelegt! +Still wie der Sturm +Ambika im Tempel der Göttin +Bettina und das eiserne Versprechen +Der Riese Kuddelmuddel +Himmel und Zwirn +Auf einen Blick - Ernährung und Haushalt +Biobuch 4 +Du und ich - wir leben im Haushalt +Geofenster 1 +Geofenster 2 +Geofenster 3 +Geofenster 4 +Gewusst wie! Zeitgemäße Ernährung +So gehts weiter +Johnny and Woolly are lost on the farm +Woolly at School +Susi Hasenöhrl +Owl Babies +Pizza&Pasta +The tale of the flopsybunnies +Classic soul +Physik auf Schritt und Tritt +Die letzten Rätsel dieser Welt +Mal mit! +Diercke Weltatlas +Fun stories +Physik/Chemie in Alltag und Technik 2 +Querschnitt Mathematik 1 +Querschnitt Mathematik 2 +Querschnitt Mathematik 3 +Querschnitt Mathematik 4 +Querschnitt Physik 2 +Durchblick 1 +Durchblick 3 +Durchblick 4 +Kochbuch in einfacher Sprache +Natur bewusst 1 +Natur bewusst 2 +Natur bewusst 3 +Sprachbuch 1/mit eigenen Worten +Sprachbuch 2/mit eigenen Worten +Sprachbuch 3/mit eigenen Worten +Der Mensch in Raum und Wirtschaft 2 +Durchblick 2 +Englisch Einführung ab 4.Klasse +Fun Stories, Multimedia +Ganz einfach Grammatik 1 +Lesetraining 1 +Mündliches Rechnen 1 +Mündliches Rechnen 2 +Mündliches Rechnen 3 +Rechtschreibspiele 1 +Rechtschreibspiele 2 +Neue Lehrberufe +Sterne und Planeten +Krähenschätze +Konzentrations Lager Dokument F321 +Die Lesestadt +Schuelmüpfeli 1 +Sprachentdecker +Die Regenbogenschlange \ No newline at end of file diff --git a/data/mediatypes.txt b/data/mediatypes.txt new file mode 100644 index 0000000..8e0a602 --- /dev/null +++ b/data/mediatypes.txt @@ -0,0 +1,8 @@ +Buch +CD +DVD +Kassettte +VHS +Zeitschrift +Blue-Ray +Spiel \ No newline at end of file diff --git a/data/places.txt b/data/places.txt new file mode 100644 index 0000000..366b46e --- /dev/null +++ b/data/places.txt @@ -0,0 +1,1424 @@ +Graz +Wien +Prag +Ried im Innkreis +Bozen/Bolzano +Teichl +Wels +Hermsdorf bei Braunau +Ried in der Riedmark +Znaim/Znojmo +Gaspoltshofen +Würmla +Königsberg +Linz +Griffen +Schwambach +Hausbrunn +Dornbirn +Ellmau +Kirchberg in Tirol +Erla +Hörstorf, Gemeinde Fraham +Hochlieben/Vysoká Libyne +Mittelsberg +Mautern +Villach +Düns +Zwittau/Svitavy +Oberaich +Schaffa/Safov +Oberwaltersdorf +Rothenthurn +Holzgau +Frauenhofen +Kroisenbach +Wagna +Innsbruck +Frankenburg +Baden bei Wien +Liebenau +Piesendorf +Schärding am Inn +Hollabrunn +Eggenburg +Hollenbach +Roggendorf bei Melk +Hemmerberg bei Kohlschwarz +Kirchschlag +Wernersreuth/Verna Saborot +Steyrling +Meierhöfen bei Karlsbad/Dvory +Zederhaus +Mürzzuschlag +Unterletzen +Schlaiten +Seefeld +Baumgarten +Viertelfeistritz +Berging +Schwandt +Ebersberg bei Neulengbach +Waldburg +Laxenburg +Krems an der Donau +Seestadtl/Ervenice +Neukirchen am Walde +Höflein/Hevlín +Vitis +Moosbach +Pöggstall +Bernstein +Attnang-Puchheim +Rohonc/Rechnitz +Hart bei Straßgang +St. Valentin +Schleinz +Linsberg +St. Stefan bei Feldbach +Staasdorf +Reiming bei Oberwölz +Tschachoritsch +Salzburg +Waisenberg +Natschbach +Tollinggraben +Mitterlobming +Glogonj +Siegelsdorf +Hagenberg im Mühlkreis +Weißenbach an der Enns +Bürs +Leipzig +Stachenwald/Stachovice +St. Michael +Neufeld an der Leitha +Groß-Enzersdorf +Altenstadt +Stögersbach +Kittsee +Feldkirch +Lustenau +Asparn an der Zaya +Gnesau +Zwentendorf +Weilbach +Amras +Grub, Bezirk Mödling +Rothwein bei Eibiswald +Eisenerz +Knittelfeld +Görlitz +Küb am Semmering +Plank am Kamp +Berlin +Schneegattern +Haag +Kuchl +Nachod/Náchod +Allentsteig +Fichtau bei Neubistritz +Velm +Zell am Ziller +Dimokur/Dymokury +Wiener Neustadt +Pommersdorf +Alkoven +Smichov/Smíchov +St. Lorenzen bei Scheifling +Deutschlandsberg +Steinabrunn +Scheibbs +Theißenegg +Steyr +Ladendorf +Deutsch-Bieling +Mödling +Lackenbach +Paildorf bei Wolfsberg +Grafenstein +Purkersdorf +Deutschfeistritz +Hall in Tirol +Rankweil +Kufstein +Ottensheim +Dellach +Kirchberg am Wechsel +Hohenwarth +Gansbach +Eger/Cheb +Klagenfurt +Landstetten +Brünn/Brno +Gnigl bei Salzburg +Raiding +Alfeld an der Leine +Himberg +Sternberg/Sternberk +Königsdorf +Sausal +Marchegg +St. Florian am Inn +Trebitsch/Trebíc +St. Lambrecht +Silz +Schönberg am Kamp +Bruck an der Mur +Sachendorf +Freistadt +Hetzmannsdorf +Heinrichsbrunn +Getzersdorf +St. Pölten +Altach +Weyer an der Enns +Hausruckedt +Münchendorf +Hainburg an der Donau +Hacking +Allerheiligen bei Judenburg +Zehetgrub +Thalgau +Hafnerbach +Kerschdorf +Holleschau/Holesov +Steegen +Lundenburg/Breclav +Puch +Holzleithen, Gemeinde Ottnang +Neunkirchen +Elbigenalp +Rajach +Wiehalm +Gösting +Leoben +Schwoich +Summerau +Sieghartskirchen +Oberzeiring +Aistenthal +Mauritzen +Herautz/Heroltice +St. Stefan an der Gail +Baden +Saalfelden +Mauer bei Amstetten +Andelsbuch +Hagendorf +Sölden +Rust im Tullnerfeld +Riegersburg +Komotau/Chomutov +Römerstadt/Rymarov +Sooß +St.Veit an der Gölsen +Eisenstadt +Söchau +Solbad Hall +Schrems +Trautmannsdorf +Pamhagen +Landskron/Lanskroun +Oberhollabrunn +Altaussee +Bad Aussee +Neuberg an der Mürz +Apetlon +Nenzing +Monza +Großraming +Grades +St. Leonhard im Lavanttal +Lassee +Gendorf +Altmanns +Haugsdorf bei Wien +Kronstorf bei Enns +Sillian +Werfen +Weiz +Mannersdorf +Budapest +Unterschwärzenbach +Möderndorf +Krimml im Pinzgau +Stuttgart +Irnfritz +St. Marien +Troppau/Opava +Truckenstetten bei Ferschnitz +Taufkirchen/Pram +Aussig/Usti nad Labem +Micheldorf +Stammersdorf +Beschitza +Rohrmoos +Vorderberg im Gailtal +Getzing +Leoben/Donawitz +Peggau +Perndorf +Pottendorf +Neustadtl an der Tafelfichte/Nové Mesto pod Smrkem +Hochstraß +Schwarzenbach +Lohnsburg +Feistritz +Neumühl +Kemeten +Petersdorf +Gföhleramt +Hallein +Asperhofen +Kojetein/Kojetín +Littisch/Litíc +Imst +Rechnitz +Alsolövo/Unterschützen +Hüttenberg +Judenburg +Lasselsdorf +Gänserndorf +Capodistria/Koper +New York +Niederplöttbach +Mühlheim am Inn +Niederschrems +Rottenmann +Nötsch +Engelhaus/Andelská Hora +Selzthal +Haibach an der Donau +Stinatz/Stinjaki +Poysbrunn +Schwanenstadt +Puch bei Hallein +Mattighofen +Safenhof +Enns +Bludenz +Thumersbach +Lingenau +Preinsbach +St. Peter in Holz +Wald am Arlberg +Oberwildgrub/Horní Velkruby +Friedburg +Ober-Rosenauerwald +Bad Goisern +Freilassing +Massing bei Krieglach +Navis +Salzberg +Bodenstadt/Potstat +Hagenau am Inn +Lidhersch/Liderovice +Czernowitz/Cernivci +St. Margarethen +Reichenberg/Liberec +Védeny/Weiden am See +Pielach +Kindberg +St. Georgen +Weyer +Taufkirchen +Wörgl +Gaßlhof +Maishofen +Lambach +Spittal an der Drau +St. Florian bei Linz +St. Georgen an der Gusen +Unteregging +Zams +Sandl +Seeboden +Kopfing +Guntersdorf +Sollenau +Wals +Krems +Ternitz +Tadten +Mattsee +Reichenthal +Markt St. Martin +Rumburg/Rumburk +Grünbach am Schneeberg +Oberstorcha +Schärding +Zell an der Pram +Gattendorf +Lienz +Hard +Gloggnitz +Hartberg +Gols +Skyrl/Skrle +Triest/Trieste +Taschendorf bei Odrau/Tosovice +Vösendorf +Engabrunn +Hotzenplotz/Osoblaha +St. Martin +Obersdorf +Pretul bei Langenwang an der Mürz +St. Johann im Pongau +Pickling bei Köflach +Blühnbach +Edelbach +Harmanschlag +Waltendorf bei Graz +Wandschaml +Obertraun +Oberfischbach +Ebreichsdorf +Unterhaus +Deutsch-Gabel/Nemecké Jablonné +St. Veit an der Glan +Grein an der Donau +Waizenkirchen +Pitten +Straßwalchen +Brixen +Groß-Inzersdorf +Vradiste, Bezirk Neutra +Oberfeistritz +Landeck +Güssing +Eferding +Heinrichsöd/Hrdonov +Tulbing +Voitsberg +Gußwerk +Edelsbach bei Feldbach +Mariazell +Stron, Gemeinde Albeck +St. Georgen bei Obernberg +Pinkafeld +Bad Gleichenberg +Mitterdorf ob Gurk +Södingberg +Ebersdorf +Grafendorf +Gilgenberg +Untervellach +Perg +Taus/Domazlice +Grünburg +Frankenmarkt +Lasberg +Freinberg +Wetzelsdorf +Gunskirchen +Sommerein am Leithagebirge +Bruneck +Amstetten +Fiß +Seibersdorf +Neuberg/Kopaniny +Borau/Borová +Radautz/Radauti +Wolfsberg +Jenbach +Spitz an der Donau +St. Peter-Freienstein +Ternberg +Kappl +Cilli/Celje +Kaltenbach im Zillertal +Dellach an der Drau +Reitdorf +Heiligenblut +Rohr +Mauthen +Riedlingsdorf +Zell an der Ybbs +Matzen +Duivelskloof +Payerbach +Gaißeregg +Stoob +Weppersdorf +Ybbs an der Donau +Oberndorf in Tirol +Windschau +Buitenzorg +Neumarkt an der Ybbs +Prag/Praha +Wilhelmsburg +Tollinggraben bei St. Peter +Liesing +Vils +Wildschönau - Oberau +St. Georgen am Steinfeld +Rappoltenkirchen +Napplach im Mölltal +Tregist +Berlin-Wilmersdorf +Kleinhöflein +Oberpullendorf +Gradenberg +Przemysl +Meran +Marienberg/Marianske Hory +Kolsass +Hablesreith bei Rosenthal/Havlov +Reittern +Maria Enzersdorf +Traun +Wolfpassing +Lölling +Oberwald +Röhrenbach +Axams +Jadersdorf/Gitschtal +Altruppersdorf +Bregenz +Sierning +Enzenkirchen +Radlberg +Triebendorf/Trebarov +Leopoldschlag +Ehrwald +Elixhausen +Pernau +Neutitschein/Novy Jicín +Mattersburg +Laßnitz +Gottsdorf +Schönering +Bad Häring +Donawitz +Oberlengdorf +Obernalb +Padochau/Padochov +Korneuburg +Ardagger +Schwechat +Uj Szöny bei Komorn/Komárom +Niemes/Mimon +Gamlitz +Turn-Severin +Fohnsdorf +Satteins +Nonndorf +Gleiwitz/Gliwice +Lauterach +Groß-Weikersdorf +Johnsdorf bei Fehring +Arnoldstein +Rohrbach +Framrach +Laibach/Ljubljana +Königgrätz/Hradec Kralove +Angern an der March +Wullersdorf +Jadersdorf bei Hermagor +Schneidmühl/Pila +Rieden bei Bregenz +Bozen +Röthis +Pinke/Benkov +Persenbeug +Köflach +Böheimkirchen +Bleiberg +Ebensee +Buschullersdorf +Trofaiach +St. Jakob in Defereggen +Ragnitz +Wilfersdorf +Lodenitz bei Pohrlitz/Lodenice +Riedau +St. Lorenzen +Bosnisch Brod +Kapfenberg +Gams bei Hieflau +Obergahleiten +Deutschkreutz +Stegersbach +Oberlienz +Kraubath +Agram/Zagreb +Kronberg +Kirchberg +Untertöllern +Kroisbach +Altpölla +Groß-Siegharts +Schwarzenberg +Hohenbrugg an der Raab +Mondsee +Chakathurn/Cakovec +Hoflenz/Mlynicky Dvur +Niederschwaig bei Lambach +Röschitz +Libochowan/Libochovany +Zemendorf +Lobositz an der Elbe/Lovosice +Mistelbach +St. Ulrich +Waldegg +Lobenstein/Uvalno +Neudek/Nejdek +Steyregg +Dicksdorf +Bielitz/Blielsko +Obertrixen +Gerersdorf bei Güssing +Breitenfurt/Siroky Brod +Bell +Oberwart +Barzdorf/Bernartice u Javorníka +Hausmening +St. Gallen +Mönchhof +Marburg an der Drau/Maribor +Allerheiligen im Mürztal +Roitham +Opponitz +Ampflwang +Nimburg/Nymburk +Modriach +Japons +Olbersdorf/Albrechtice +Iglau/Jihlava +Grulich/Králiky +Raabs an der Thaya +Gschwandt +Umhausen +Münster +Judendorf bei Leoben +Zwettl an der Rodl +Sierling bei Stainz +Haid +Judendorf-Straßengel +Seekirchen am Wallersee +Vöcklabruck +Rann +Nieder-Grünbach +Katzelsdorf +Perchtoldsdorf +Brunn am Gebirge +Kosten +Lugendorf +Zniscenie bei Lemberg +Sitzendorf +Zerlach +Mitterndorf +Deutsch-Wagram +Horenz/Horenice +Diersbach +Doppel +Fügen +Gösseling +Windischgarsten +Adlwang +Ebbs bei Kufstein +Aschbach +Poppendorf +Eberswalde +Feldkirchen an der Donau +Dresden +Plan/Planá +Vomp +Ober-Rosenthal/Horní Ruzodol +Langenwang +Zauchtel +Gibacht/Pozorka +Bitburg +St. Lorenzen im Mürztal +Iserthal/Reky +Mauerkirchen +Neuwelt bei Harrachsdorf/Novy Svet u Harrachova +Kittlitz/Kytlice +St. Vinzenz +Eibiswald +Gersdorf, Bad Gams +Eidenberg +Gmünd +Mauer bei Wien +Ameis +Obermoldau/Horní Vltavice +Klein-Winklern +Riedling +Thenning +Sarajevo +Muttaschlag/Mutyneves +Neutal +Platt +Andau +Neudörfl +Maierhöfen +Altenmarkt +Weiler +St. Wolfgang +Neubruck +Rohitsch +Asch/As +Euratsfeld +St. Georgen im Attergau +Petschek/Pecky +Bärnbach +Eisentratten +Meran/Merano +Draßburg +Stanz im Mürztal +Projern +Gries bei Rennweg +Riva +Hundsheim +Nendeln +Grusbach +Steyrermühl +Großpetersdorf +Stadl an der Mur +Aisting bei Schwertberg +Waidhofen an der Ybbs +Alt-Petrain/Stary Petrín +Maglern +Lindau +Marburg/Maribor +Raumberg +St. Leonhard +Neumarkt im Mühlkreis +Oberschützen +Winklern +Rotenturm an der Pinka +St. Andrä +Bergheim +Brenner/Brennero +Sulz +Münchhof bei Karlsbad/Mnichov +Neuda +Oberpulka bei Radkersburg +Guttenbrunn +Aichkirchen bei Lambach +Pux +Zwettl +Gaishorn +Unterlaa +Filzmoos +München +Antoniwald/Antonínov +Olmütz/Olomouc +Fürstenfeld +Hornstein +Straden bei Gleichenberg +Scheifling +Burgfried +Gramastetten +Hörtendorf +Hinzenbach +Kirchbach +Nikolsdorf +Neukirchen am Großvenediger +Kapfenberg-Diemlach +Tulln +Hubberg bei Ybbsitz +Zauchtel/Suchdol nad Odrou +Annaberg +Judendorf +Unter-Rohrendorf +Oberau +Dienten am Hochkönig +Doren +Hohenems +Urfahr +St. Georgen am Ybbsfeld +Goldegg +Gröbming +Eßlingen +Michelbach +Thalheim bei Wels +Felixdorf +Mosonszolnok/Zanegg +Floing bei Weiz +Semriach +Mährisch Neustadt/Unicov +Blumegg +Johannesthal +Lödersdorf +Leitmeritz an der Elbe +Lechwitz/Lechovice +Philadelphia +Webling +Klingenbrunn bei Haag +Steinerberg +Wagstadt/Bilovec +Greifenburg +St. Stefan im Lavanttal +Tragwein +Mairspindt +Digne Basses Alpes +Vandans +St. Lorenzen bei Trieben +Reichenfels +Pucking +Klostermarienberg +Ödenburg/Sopron +Zellerndorf +Lugosch/Lugoj +Pessendellach +St. Johann am Pressen +Wolfsbach +Illmitz +Wittingau/Trebon +Timenitz +Wölfnitz +Oberperfuß +Schoppernau +Groß-Betschkerek +Sillebrücke +Gurnitz +Aschlberg bei Linz +Littau/Litovel +Anger +Siebenhirten +Neukirchen an der Enknach +Napajedl/Napajedla +Kallham +Grafendorf bei Hartberg +Krems-Egelsee +Wattens +Markt Eisenstein/Zelezná Ruda +Christkindl, Gemeinde Garsten +Roithen +Feldkirchen +Wildon +Moor +Kitzbühel +Frainspitz/Branisovice +Bischofshofen +Seeham +Oggau +Schwand +Luppetschnig +Ansfelden +Bochtitz +Niederabsdorf +Loidesthal +Steinhaus bei Wels +Hobersdorf +Zwickau/Cvikov +Grödig +Haiming +Gams +Tárnok +Gaweinstal +Bleiburg +Saalbach +Burgegg +Hochwolkersdorf +Gossam +Teschen/Tesín +Ebenau +Nüziders +Neuhaus am Klausenbach +Pörtschach am Wörthersee +Hollern +St. Gotthard an der Raab +Gumpoldskirchen +Ferlach +Kirchdorf am Inn +Wiesenthal bei Gablonz +Himmelberg +Göding/Hodonín +Wenns +Finsternau +Seekirchen +Peuerbach +Pottschach +Aschach an der Donau +Kirchdorf an der Krems +Unterhaus, Gemeinde Baldramsdorf +Preßburg/Bratislava +Christiansau/Kristiánov +Werbas +Nikolsburg/Mikulov +Geiersberg +Kalitsch +Treibach-Althofen +Markt Piesting +Schwaz +Benitz/Bantice +Graz-Andritz +Reith +Lichtenhof +Oberbozen +Pichling bei Köflach +Diemersdorf +Seebenstein +Vorchdorf +Ligist +Pichl-Preunegg +Oberlimbach +Steinakirchen am Forst +Melk +Schafberg +Postelberg +Stotzing +Schäffern +Piberegg +Windischgraz/Slowenj Gradec +Ober Wagram +Rudersdorf bei Fürstenfeld +Waasen bei Leoben +Linz an der Donau +St. Stefan am Walde +Weng bei Altheim +St. Gilgen +Ottnang +Würnsdorf bei Pöggstall +Unter-Tannowitz/Dolní Dunajovice +Säusenstein +Schwanberg +Traunkirchen +Trient +Fehring +Oberpetersdorf +Laa an der Thaya +Rietsch bei Sternberg/Ridec u Sternberka +Görkau/Jirkov +St. Georgen bei Neumarkt +Braunau am Inn +Eberschwang +Zistersdorf +Stockenboi +Murau +Hörsching bei Linz +Niederndorf bei Weibern +Thomigsdorf/Damníkov +Deutsch-Jahrndorf +Obergnas +Hitzendorf +Sangerberg/Prameny +Kleinwarasdorf +Kowald bei Voitsberg +Höflein +Pöls +Schönlinde/Krásná Lípa +St. Gertraud im Lavanttal +Vorau +Wies +Mühldorf am Inn +Hamilton +Kempten im Allgäu +Müglitz/Mohelnice +Afing +Neuwald +Höchst +Gutenstein +Radkersburg +Markt Krönau/Krenová +Windigsteig +Thaya +Münchengrätz/Mnichovo Hradiste +Gußwerk bei Mariazell +Irmsdorf +Wernstein +Nemelkau/Nemilkov +Rudig bei Podersam/Vroutek +Mettmach +Altenmarkt an der Triesting +Saak +Andorf +Garmanns +Wattenberg +St. Veit im Pongau +Sonntag +Schloß Aigen bei Salzburg +Baja +Bergegg +Gosau +Döllnitz/Odolenovice +Lebring +Hinterbrühl +Hermannstadt +Siegendorf +Stockerau +Gratwein +Roßhof +Füllstein/Bohusov +Pribram +Kleinbaumgarten +Altenmarkt im Pongau +Wieselsdorf +Möschach +Schönborn bei Reichenberg +Warschau +Arzl im Pitztal +Bad Ischl +Burgau +Ober-Grafendorf +Saifnitz +Falkenau/Sokolov +Jois +Untermais bei Meran +Matrei am Brenner +Baldramsdorf +St. Veit +St. Johann am Walde +Brand +Baierdorf +Wöbling bei Graz +Wolkersdorf +Goisern +Ruttenschlag +Jena +Mies/Stríbro +Niederdorf bei Feldkirchen +Haugsdorf +Kirchbichl +Donnerskirchen +Kaindorf an der Sulm +Stein bei Dellach +Liebenfels +Nickelsdorf +Mold +Gaudenzdorf bei Wien +Halbenrain +Sablat +Sachsenburg +Herzogenburg +Tobadill +Radlach +Mauthausen +Wigstadtl Oberdorf/Vitkov Horni Ves +Oberalm +Kainraths +Lennep +Unterweißenbach +Gurahumora +Neugrafenwalde/Nová Grafenwalde +Sarnthein +Karlstein an der Thaya +Weiden am See +Sigmundsherberg +Wiese +Leiben +Pöchlarn +Puchkirchen +Veitsch im Mürztal +Waidhofen an der Thaya +Glantschach +Häselgehr +Dirnbach +Wilten bei Innsbruck +Unterloibl +Eugendorf +Hallstatt +Wiesental-Vasoldsberg +Lind +Mittersill +Oberndorf +Obernberg am Inn +Friesach +Aalfang +Raipoltenbach/Niederösterreich +Hart bei Graz +Großgerharts +Göstling +Purbach am Neusiedler See +Frankenberg, Gemeinde Albeck +Feldbach +Mainburg +Mäder +Belgrad +Wallern +Radlbrunn +Embach +Thüringen +Altlengbach +Zürich +Biberwier +Neudau +Lilienfeld +Bad Wimsbach-Neydharting +Edlitz +St. Johann am Tauern +Obdach +Falkendorf +Großstübing +Ostpreußen +Bruck an der Leitha +Taxenbach +Breitenwang +Weikersdorf am Steinfeld +Feldsberg +Starnberg +Bad Deutsch-Altenburg +Gleisdorf +Hall +Tamsweg +Aurach am Hongar +Ottnang am Hausruck +Gallbrunn +Horn +Nesselwängle, Reutte +Kematen an der Krems +Raffelding +Altmannsdorf bei St. Pölten +Trumau +Hafning/Leoben +Reichenau an der Rax +St. Johann in Tirol +Großrupprechts +Oberwietingberg +Roppen +Jetzles +Diez an der Lahn +Itter +St. Tönis +Seiz +Guntramsdorf +Schwarzach im Pongau +Kleinsölk +Aspang +Beetzendorf +Fischbach +Obdachegg +Wieselburg +Kirchberg an der Pielach +Kautzen +Neufurth/Amstetten +Liesing im Lesachtal +Oberwölz +Waldhausen +Grieskirchen +Helfenberg +Niederneukirchen +Gobelsburg +Trautenau/Trutnov +Ludmannsdorf +Althofen +Mitterweng +Bangkok +Rust am See +Bad Gastein +St. Pantaleon +Singsdorf +Zurndorf +Kleinedling/Wolfsberg +Obermühl +St. Andrä-Wördern +Zell am See +Bezau +Burgauberg +Kempten +Bad Erlach +Hof bei Salzburg +Flattach +Passau +Kaprun +Haag am Hausruck +Spielfeld +Mitterkirchen +Sallingberg +Retz +Brünn +Aue bei Schottwien +Frastanz +Gutenbrunn +Hainburg +Weitra +Fusch an der Großglocknerstraße +Waidhofen +Schmieheim +Bodensdorf +Ostermiething +Bad Zell +Micheldorf in Oberösterreich +Lichendorf +Steuerberg +St. Jakob im Walde +Unterschützen +Olbendorf +Frohnleiten +Ratten +Hafning/Trofaiach +Lemberg +Buczacz +Tarnopol/Galizien +Krakau +Drohobycz +Butschowitz +Triebsch/Trebusín +Jaroslau/Galizien +Jaslo/Galizien +Buczacz/Galizien +Rohozna +Großwardein/Ungarn +Hochfilzen +Lesachtal +Niklasdorf +Lavamünd +Pellendorf +Lang in der Steiermark +Tradigist +Beirut +Alt-Dietmanns +Tulln an der Donau +Hohenems/Vorarlberg +Strem +Lofer +Bleiberg-Nötsch +Kangal +Theresienfeld +Köflach an der Pichling +Fließ +Deutsch-Griffen +Tübingen +Altneudörfl +Dietmannsdorf bei Trieben +Yenisehir +Trattenbach +Schattendorf +Waiern bei Feldkirchen +Großarl +Bad Kreuzen +Skalat/Galizien +Czernowitz +Suczawa +Tarnopol +Kuty +Rzeszow/Galizien +Ckyn +Wilna +Lipnik +Prossnitz +Dukla +Janow +Pest +Strakonitz +Postelberg/Böhmen +Brünn/Mähren +Brody +Semice +Mannheim +Triest +Hietzing +Triesch/Mähren +Tysmienica +Tarnow +Bildein +Ilz +St.Stefan im Rosental +Tulln, Pensionisten und Landespflegeheim Rosenheim +Feldbach (Steiermark) +Neusiedl am See +Neulengbach +Rudolfswerth/Novo mesto (Slowenien) +St.Oswald +Claremont (USA) +Paris +Neumarkt +Bensen/Benesov nad Ploucnici (Böhmen) +Mehltheuer (Steiermark) +Sauerbrunn +Klosterneuburg +Fulnek/Fulnek (Mähren) +Feldkirch-Altenstadt +Fairfield (Connecticut, USA) +Bodensee (Flugzeugabsturz) +KZ Auschwitz +Hall bei Admont +Glatz +Pirk, Gemeinde Seeboden +Tulbing (Niederösterreich) +Pfaffing +Znaim (Tschechien) +KZ Dachau +Hoflenz/Mlynicky Dvur (Mähren) +Traiskirchen +St.Andrä an der Traisen +Rohr an der Raab +Schruns (Vorarlberg) +St.Florian am Inn +Hermagor +Steinbrunn +Teneriffa +Ferschnitz +Riverside Chapel, N.Y. (USA) +Schladming +Rum +Buchegg +Gföhl (Niederösterreich) +Neujahrsdorf bei Kukus/Nouzov (Böhmen) +Kremsmünster +Liezen +Bad Hall +Leonhard +Kaindorf +St. Peter am Wimberg +Fusch an der Glocknerstraße +Hittisau +Groß Gerungs +Lambichl in Kärnten (Autounfall) +Oberkurzheim (Steiermark) +Oberfellabrunn (Niederösterreich) +Wisperndorf +Weiden am See (Burgenland) +Ratzenberg (Niederösterreich) +London +Berkeley, Kalifornien (USA) +Hohenruppersdorf (Niederösterreich) +Brüx/Most (Böhmen) +Thalgau bei Salzburg +Veleslavin bei Prag +Krems-Stein +Gars am Kamp +Rohrbach in Oberösterreich +2514 Traiskirchen-Möllersdorf +St. Radegund bei Graz +Geinberg +Göttingen +Kenia +Unter Sandau/Dolní Zandov (Böhmen) +Frankfurt am Main +Troppau/Opava (Schlesien) +Schönau an der Triesting +Natters +Kirchschlag bei Linz +Lanzendorf +Leopoldsdorf +Muscherad bei Kaplitz/Mocerady (Böhmen) +Groß-Söding +Bad Hofgastein +Gerlamoos/Steinfeld +Dux/Duchcov (Böhmen) +Bern +Montan (Südtirol) +Garsten +Lembach im Mühlkreis +Donnersdorf (Steiermark) +Kartitsch (Tirol) +Karlsbad/Karlovy Vary (Böhmen) +Wolfsberg (Kärnten) +Ehrenhausen +Steinbrunn-Zillingtal (Burgenland) +Gutau (Oberösterreich) +Allerheiligen bei Wildon +Perlog +Ried +St. Margareten +Edt bei Lambach +Wolkersdorf im Weinviertel +Rom +Völkermarkt +Attersee (Oberösterreich) +Landskron/Lanskroun (Böhmen) +Ziersdorf +Mals +Altmünster +Anthering +Bockfließ +Taufkirchen an der Pram +Moosburg +Waldneukirchen (Oberösterreich) +Jennersdorf (Burgenland) +Telfes (Tirol) +Amsterdam +Mies/Stríbro (Böhmen) +Altrohlau/Stará Role (Böhmen) +Mariabrunn +Oberneukirchen (Oberösterreich) +Küb +Hörgas-Enzenbach (Steiermark) +KIagenfurt +Schwarzach-St. Veit +Hörzendorf (Kärnten) +Bad Vöslau +Hannover +Eisbach +Sittendorf, Gemeinde Wienerwald +Güssing (Burgenland) +Frojach (Steiermark) +Forchtenstein +Krieglach +Santa Eulalia (Spanien) +Nimwegen (Niederlande) +Ybbsitz +Dreizehnlinden/Treze Tilias (Brasilien) +Aschach an der Steyr +Wien-Schwechat +Vöcklabruck (Oberösterreich) +Kehlberg (Steiermark) +Windhaag bei Freistadt +Aich am Attersee +Lockenhaus +Großglockner (verunglückt) +Hanftal (Niederösterreich) +Rottenbach +Puchberg bei Wels +Aigen (Salzburg) +Wolfenreith bei Habruck (Niederösterreich) +Uttendorf +St. Oswald (Oberösterreich) +Jedenspeigen +Hollywood +Rohrau (Niederösterreich) +Saaz/Zatec (Böhmen) +Zams (Tirol) +Obergrafendorf +Reichenberg/Liberec (Böhmen) +Zirl +Gehrden (Bundesrepublik Deutschland) +Spitz (Niederösterreich) +Purgstall an der Erlauf +Oberalm (Salzburg) +Cividale del Friuli (Italien) +Oetz (Tirol) +St. Oswald bei Freistadt +USA (genauer Ort n.f.) +Tiefgraben (Oberösterreich) +Weiterstadt (Deutschland) +Ranten bei Murau +Hautzendorf +Weibern +Parndorf +Wallern an der Trattnach (Oberösterreich) +KZ Groß-Rosen +Blois (Frankreich) +Eichberg +Walbersdorf +Oberstankau/Hosni Stankov (Böhmen) +Leitmeritz/Litomerice (Böhmen) +Kleinvolderberg (Tirol) +Mutters (Tirol) +Weer (Tirol) +Gänserdorf +Schloß Sprinzenstein, Gemeinde Sarleinsbach +KZ Sachsenhausen +Hausleiten (Niederösterreich) +Untermöschach +Teplitz-Schönau/Teplice (Böhmen) +Schruns +Bad Darkau +KZ Buchenwald +Gatterschlag (Böhmen) +Landegg (Niederösterreich) +Zell +Obergottesfeld, Gemeinde Sachsenburg +Oberleutensdorf/Litvinov (Böhmen) +Waiern (Kärnten) +Nixdorf/Mikulásovice (Böhmen) +Inzersdorf +Pernitz +Grabern (Niederösterreich) +Barcelona +Mortantsch (Steiermark) +Grönland +Neufeld an der Leitha/Burgenland +Kirchbach (Kärnten) +Stanislau/Galizien +KZ Zamosc/Polen +Kolomea +Vöslau/NÖ +Obermais/Meran +Frankfurt/Main +Mariagrün bei Graz +Opatija (Istrien) diff --git a/data/professions.txt b/data/professions.txt new file mode 100644 index 0000000..07a2ecb --- /dev/null +++ b/data/professions.txt @@ -0,0 +1,1187 @@ +Ordentlicher Universitätsprofessor +Schriftsteller +Fabrikant +Beamter +Berufsschuloberlehrer +Beeideter Buchprüfer und Steuerberater +Stadtschulinspektor +Gymnasialprofessor +Gartentechniker +Bäckermeister +Volksschullehrer +Bauer +Sozialversicherungsangestellter +Bundesbeamter +Postbeamter +Landwirt +Medizinisch-Technische Assistentin +Landesbeamter +Magistratsrat +Monteur +Bundesbahnbeamter +Berufsschuldirektor +Gemeindebeamter +Elektriker +Landwirtin +Chefredakteur +Müller, Grundbesitzer +Vizepräsident des ÖGB +Landesparteisekretär +Journalistin +Wanderlehrer +Handschuhlederfabrikant +Eisenbahnbediensteter i. R. +Generalsekretär des Reichsvereins der Bank- und Sparkassenbeamten Österreichs +Angestellter +Bauernbunddirektor +Lehrerin +Gymnasialdirektor +Rechnungsbeamter im Post- und Telegraphendienst +Gutsbesitzer +Jurist +Bundesminister a.D. +Kaufmann +Wirtschaftsprüfer und Steuerberater +Stadtpfarrer +Gastwirt +Weinbauer +Bankbeamter +Hauptschuldirektor +Parteisekretär +Tapezierermeister +Vertragsbediensteter +Volksanwältin +Volkswirtschafter, Unternehmensberater +Wagnermeister und Landwirt +Rechtsanwalt +Volksanwältin a.D. +Betriebsratsvorsitzende +Uhrmachermeister +Sekretär des Bundes der Industrieangestellten Österreichs +Bezirksschulinspektor +Ordentlicher Universitätsprofessor i.R. +Direktor der Konsumgenossenschaft Wien +Mittelschulprofessor +Elektromechaniker +Direktor des Tiroler Bauernbundes +Zeitungsverwalter +Steuerbeamter +Schulleiter +Journalist +Beamter der ÖBB +Wirtschaftsbesitzer +Sekretärin +Bilanzbuchhalter +Landwirt und Gastwirt +Pfarrer +Hausfrau +Hauptschullehrer +Polizeibeamter +Zivilingenieur +Kindergärtnerin +Obergärtner i. P. +Fachlehrer +Mühlenbesitzer +Gastwirt und Wirtschaftsbesitzer +Werkmeister +Wirtschaftstreuhänder, Steuerberater +Soziologe +Abteilungsleiter der Kammer der gewerblichen Wirtschaft für Vorarlberg +Metallarbeiter +Lehrer +Gemeindebediensteter +Bohrwerksdreher +Vereidigter Buchprüfer und Steuerberater +Lohnbuchhalterin +Präsidentin des Verbandes "Societas" +Hof- und Gerichtsadvokat +Angestellter des Österreichischen Gewerkschaftsbundes +Industrieller +Bundesministerin für Verkehr, Innovation und Technologie +Schlosser +Revident der Bundesbahnen +Bauarbeiter +Europaparlamentarier, Gemeindebediensteter +Richter +Gewerkschaftssekretärin +Werkstoffprüfer +Monsignore +Gewerkschaftssekretär +Präsident des Landesverbandes Wien der Kriegsinvaliden und Kriegshinterbliebenen Österreichs +Technischer Angestellter +Oberförster +Gemeinderätin +Zentralsekretär der Gewerkschaft der Privatangestellten +Installateur +Technischer Kaufmann +Kammerbeamtin +Beeideter Wirtschaftsprüfer und Steuerberater +Klubvorsitzender +Steinmetzmeister +Oberinspektor der ÖBB i. R. +Obermagistratsrat +Großhandelskauffrau +Chefredakteur und Internationaler Sekretär der SPÖ +Diplomat +Stenotypistin +Präsident der Kammer für Arbeiter und Angestellte +Vorsitzender und Geschäftsführer der Gewerkschaft der Privatangestellten +Bundesfrauensekretärin +Oberbäcker +Bundesbeamtin +Zeitungsherausgeber +Arbeitersekretär +Fachschullehrer +Kaufm. Angestellte +Prokurist i. R. +Schriftsteller, Parteisekretär +Leichenbestatter +Leitender Sekretär der Kammer für Arbeiter und Angestellte für Oberösterreich +Prior +Vorsitzender Rat beim Oberlandesgericht Wien +Buchbindermeister +Unternehmer +Bundesminister für wirtschaftliche Angelegenheiten +Grundbesitzer +Privatbeamter +Privatangestellter +Gerichtskanzleidirektor +Prokurist +Oberrat im Bundesamt für Statistik +Bundesgeschäftsführerin der SPÖ +Angestellter, Leitender Sekretär des ÖGB +Redakteur +Organisationsvertreter +Stadtzimmermeister +Professor an der Technischen Hochschule in Wien +Kleinbauer +Landwirtschaftlicher Arbeiter +Landessekretär der Gewerkschaft der Privatangestellten Tirol +Präsident der Bundeskammer der gewerblichen Wirtschaft +Weinhauer +Fachschulinspektor für berufsbildende Schulen +Stadtamtsdirektor +Brauereiarbeiter +Postinspektor +Hofrat a. D. +Vizebürgermeister von Wien +Haushalt +Berufsberater +Telegraphen-Oberinspektor +Oberrealschulprofessor +Advokat +Angestellte +Gewerkschaftsbeamter +Lokomotivführer i. R. +Kanonikus +Gewerbetreibender +Betriebstechniker +Generalstaatsanwaltstellvertreter +Landesbedienstete +Kammersekretär +Arzt +Pensionistin +k.k. Rechnungsrevident +Müller +Professor +Senatspräsident des Verwaltungsgerichtshofes i. R. +Bediensteter der ÖBB +Glasermeister +Verkaufsleiter +Bankgeschäftsleiter +Metallarbeiterin +Stahlkontrollor, Arbeiterbetriebsratsobmann +Sekretär des Tiroler Bauernbundes +Angestellter, Sekretär der Gewerkschaft der Bau- und Holzarbeiter +Arbeitersekretär i. R. +Bundesministerin für Finanzen +Land- und Forstwirt +Landessekretär des Landbundes für Österreich +Goldschmied +Schuharbeiter +Hotelier +Agraringenieur, Bauernbunddirektor +Finanzbeamter +Gastwirt und Sägewerksbesitzer +Bundespräsident +Verwalter +Konsulent im Baugewerbe +Bundesminister für Land- und Forstwirtschaft +Sonderschuldirektor +Geschäftsführer +Ministerialrat +Wirtschaftsjurist +Krankenkassenbeamter +Städtischer Oberamtsrat +Stadtpfarrer und Prälat +Mechaniker +Elektroniker +Unternehmensberater +Volksschuldirektor +Oberlandesgerichtsrat und Senatsvorsitzender +Professor i. R. +Vizepräsident des Österreichischen Gewerkschaftsbundes +Auto- und Möbellackierer +Städtischer Angestellter +Mittelschullehrer +Buchdrucker +Gendarm +Obmann des Freien Gewerkschaftsverbandes +Gemeindesekretär +Werkzeugmacher +Meierhofbesitzer +Bauer, Gastwirt +Rechtskonsulent und Rechtsanwalt +Bauer und Gastwirt +Industriekaufmann +Landessekretär der Gewerkschaft der Bau- und Holzarbeiter +Gewerbepensionist +Handelskammersekretär +Seidenfärber +Staatsanwalt +Schriftstellerin +Fleischhauer und Selchermeister, Gastwirt +Geschäftsführer eines Elektrizitätswerkes +Amtsdirektor des Bezirksgerichtes Innsbruck +Selbständiger beeideter Buchprüfer und Steuerberater +Landesschulinspektor +Universitätsassistent +Schlossermeister +Prokuristin +Amtsleiter der Arbeiterkammer Graz, Amtsstelle Leoben +Post- und Fernmeldebeamter +Universitätsprofessor, Arzt +Präsident des Wiener Stadtschulrates +Stahlwarenerzeuger +Universitätsprofessor +Textilarbeiter +Leitender Sekretär der Kammer für Arbeiter und Angestellte für Steiermark +Kammeramtsdirektor der Kammer der gewerblichen Wirtschaft für Oberösterreich +Gerichtsadvokat +Kaufmännische Angestellte +Schauspieler +Baudirektor +Stickereikaufmann +Bezirkssekretär des ÖGB +Gemeindebediensteter (Stadtbaudirektor) +Verwaltungsjurist +Fernmeldetechniker bei der Post- und Telegraphenverwaltung +Trainerin in der Erwachsenenbildung +Hauptschuloberlehrer +Mühlen- und Landwirtschaftsbesitzer +Volksschuloberlehrer +Bahnbeamter +Facharzt +Oberwerkmeister +Dokumentarfilmerin +Elektromonteur +Magistratsdirektor +Kammeramtsdirektor +Berufsoffizier des Österreichischen Bundesheeres +Bundesbahnbeamter i. R. +Wirtschaftsleiterin +Bezirksrichter +Beamter der Wiener Verkehrsbetriebe +Landwirt, Kaufmann und Gastwirt +Forstingenieur +Werkmann +Angestellter und Landwirt +Schuhmachermeister +Buchhalterin +Bauelektriker +Bürgerschullehrer +Wirtschaftstreibender +Industrieangestellter +Eisenbahnbediensteter +Direktor +Polizeioffizier +Direktor des Niederösterreichischen Bauernbundes +Verbandssekretär +Kraftfahrer +Kommandant der Berufsfeuerwehr Klagenfurt +Direktor des Bildungshauses Puchberg bei Wels +Bundesbeamtin i.R. +Kleinlandwirt +1. Landtagspräsident +Eisenbahnbediensteter (Oberrevident) +Universitätsdozent +Tierarzt +Prälat +Friseurmeister +Sekretär der Industriesektion der Bundeswirtschaftskammer +Gast- und Landwirt +Lehrerin a. D. +Lehrerin an einer AHS +Industriekaufmann, Konsul +Hochschulprofessor +Dachdeckermeister +Magistratsbeamter i. R. +Färbermeister +Berufsschullehrerin +Baurat +Direktor des Gewerbeförderungsinstituts der Kammer für Handel, Gewerbe und Industrie in Wien +Lagerhalter +Großkaufmann +Schriftsetzer +Landessekretär des ÖGB +Gemeindebedienstete +Generalsekretär des ÖAAB +Kaufmännische Angestellte, Bäuerin +Lokomotivführer +Steinmetzmeister und Industrieller +Schulrat +Beamter der Stadt Wien +Industrieschichtführer i. R. +Landessekretär +Sticker +Erbrichtereibesitzer +Bundesminister für Arbeit und Soziales +Erster Staatsanwalt +Sägewerksbesitzer und Ökonomiebesitzer +Soziologin +Wirtschaftsreferent der Zivilverwaltung des Mühlviertels +Weinbauer und Kellermeister +Ministerialrat im Bundesministerium für Unterricht +Generaldirektor der Wiener Messe AG +Sekretär des Katholischen Volksvereines für Oberösterreich +Major +Landeshauptmann +Selbständiger Forstwirt und Realitätenbesitzer +Landessekretär der Gewerkschaft Metall-Bergbau-Energie +Hofrat +Sozial- und Wirtschaftswissenschafter +Sozialversicherungsangestellte +Wirtschaftsbesitzer und Gastwirt +Kreissekretär des Landbundes +Kaufmännischer Angestellter +Bergarbeiter +Rechtskonsulent +Direktor eines Bundesrealgymnasiums +Bauer und Holzhändler +Bundesbeamter, Oberst +Fleischhauer, Ziegelwerks- und Realitätenbesitzer +Versicherungskaufmann +Versicherungsangestellter +Schriftsteller, Rundfunkintendant-Stellvertreter i. R. +Leitender Sekretär im ÖGB, Buchdrucker +Generalmajor d. R. +Bauer und Weinhauer +Taschner +Landwirt und Gemischtwarenhändler +Betriebsassistent +Seilermeister +Postangestellter +Mühlenbauer +Feinmechaniker +Malermeister +Schmied +Bautischler +Telegraphenoberinspektor +Realitätenbesitzer +Sekretär des Wiener Fürsorge- und Wohlfahrtsvereins "Volkshilfe" +Versicherungsmakler +Forstrat +Altbauer +Bundeskanzler a.D. +Tischlermeister +Sparkassenangestellte +Textilkaufmann +Buchhalter +Leiterin des Fonds der Wiener Kaufmannschaft +Bahnschaffner +Direktor des Gewerbeförderungsinstitutes für das Herzogtum Salzburg +Sekretär der Gewerkschaftskommission Österreichs +Bundesminister a. D. +Apotheker, Schriftsteller +Pensionist +Techniker +Sozialwissenschafterin +Stadtbaumeister +Obmann des österreichischen Metall- und Bergarbeiterverbandes +Zollinspektor i. R., Gewerkschaftsobmann +ao. und bev. Botschafter +Sekretär +Holzhändler +Oberstadtarzt +Dreher +Direktor der Wiener Gebietskrankenkasse +Generalsekretär des Österreichischen Arbeiter- und Angestelltenbundes +Hilfsarbeiterin +Steuerberater, gerichtlich beeideter Sachverständiger +Gastwirt, Ökonom +Tischler +Direktor der Bundeshandelsakademie und Bundeshandelsschule Lienz +Sodaarbeiter +Volksanwalt a.D. +Chemielaborantin +Magistratsbeamter +Angestellter der NÖ Landes-Landwirtschaftskammer, Landwirt +Lehrer an einer AHS, Professor +Geschäftsführerin der Steirischen Gesellschaft für Gesundheitsschutz +Orthopädischer Schuhmachermeister +Hotelbesitzer +Beamter des Landesarbeitsamtes Oberösterreich +Bergmann +Landessekretär des Österreichischen Arbeiter- und Angestelltenbundes +Sparkassenangestellter +Hauptschuldirektorin +Konsulent +Abgeordneter zum Europäischen Parlament +ao. Gesandter und bev. Minister +Sekretär der Kammer für Arbeiter und Angestellte für Salzburg +Cafetier, Kaufmann +Psychologin +Präsident der Zentralorganisation der Kriegsopferverbände Österreichs +Privat +Immobilienverwalter +Direktor des NÖ Wirtschaftsbundes +Ökologin +Generalsekretär des "steirischen herbstes" +Direktor des Kärntner Bauernbundes +Chemiker +Eisenbieger-Vorarbeiter +Vizepräsident der Bundesbahndirektion Villach +Historiker und Volkskundler +Kurhausdirektor +Sektionsrat +Beamter der Salzburger Landesregierung, Oberamtsrat +Landeshauptmann der Steiermark +Lehrer an einer Bundeshandelsakademie und Bundeshandelsschule +Verleger +Mittelschuldirektorin +Sekretär des Bauernbundes +Handelskammersekretär a. D. +Oberlandesgerichtsrat +Oberrechnungsrat +Exportkaufmann +Sekretär der Kammer der gewerblichen Wirtschaft für Oberösterreich +Gemeindeangestellte +Oberst a. D., Generalsekretär des Kärntner Industriellenverbandes +Direktor der Steiermärkischen Landesdruckerei +Möbelerzeuger +Direktor der Konsumgenossenschaft Innsbruck +Facharzt für Innere Medizin, Primararzt +Einzelhandelskaufmann +Postrechnungssekretär +Kraftfahrzeugschlosser +Sekretär der Arbeiterkammer +Bezirkshauptmann +Direktor der landwirtschaftlichen Landeslehranstalt Rotholz und des Tiroler Bauernbundes +Bundesbahnbediensteter +Oberst d. R. +Maurermeister +Elektrotechniker, Zentralbetriebsratsobmann +Kassenbeamter +Baumeister +Religionsprofessor +Ökonom +Direktor des Oberösterreichischen Bauern- und Nebenerwerbsbauernbundes +General a. D. +Geschäftsführung - Forstbetrieb +Angestellte, Berufsvormünderin +Zentralsekretär der Gewerkschaft der Bau- und Holzarbeiter +Handelskammersekretär i. R. +Leitender Angestellter des Bergarbeiter-Versicherungsanstalt +Notar +Hofrat im Bundesministerium für Handel und Verkehr +Hafnermeister +Syndikus der Bundeskammer der gewerblichen Wirtschaft +Beamter der Niederösterreichischen Landesregierung +Zentralsekretär +Kanzleivorstand +Internationaler Sekretär der SPÖ +Kindergarteninspektorin +Sektionsgeschäftsführer der Kammer der gewerblichen Wirtschaft für Niederösterreich +Landessekretär des Österreichischen Gewerkschaftsbundes +Beamter i. R. +Rechnungsführer +Elektrotechniker +Hüttenarbeiter +Ordentlicher Universitätsprofessor für Nationalökonomie +Bundeskellereiinspektor, Weinbauer +Rechtsanwaltsanwärter +Angestellter der Wiener Verkehrsbetriebe +Volksanwalt +Schneidermeister +Bezirksparteisekretär +Kammeramtsdirektor der Kammer für Arbeiter und Angestellte für Kärnten +Hauptschullehrerin +Außerordentlicher Universitätsprofessor +Bundesgeschäftsführer der SPÖ +Facharzt für Chirurgie und Geburtshilfe +Bezirkssekretär des Österreichischen Gewerkschaftsbundes +Kaufmann, Wirtschaftsbesitzer +Direktor des Steirischen Bauernbundes +Kaufmann und Sägewerker +Geschäftsführender Gesellschafter +Landesparteisekretär der SPÖ Wien +Generalsekretär, Rechtsanwalt +Volkswirtschaftler +Lohgerber +ao. Gesandter und bev. Minister i. R. +Landwirt und Realitätenbesitzer +Richter am Oberlandesgericht Wien +Textilarbeiterin +Landessekretär des Oberösterreichischen Seniorenbundes +Technischer Assistent +Gerbereibesitzer und Ökonom +Erster Sekretär des ÖGB +Amtsstellenleiter der Kammer für Arbeiter und Angestellte für Niederösterreich +Beamter der Staatsbahnen +Ministerial-Vizesekretär +Realitätenbesitzer und Gastwirt +Staatssekretär a.D. +Lebzelter und Zuckerbäcker +Lehrer an der Bundeshandelsakademie und Bundeshandelsschule Oberpullendorf +Leitender Sekretär der Arbeiterkammer Wien +Ministerialrat a. D. +Krankenkassendirektor i. R. +Brauereibesitzer +Präsident des Tiroler Landtages a.D. +Ministerialbeamter +Zweiter Präsident des Nationalrates, Bundesbeamter +Universitätslektor +Elektrotechniker, Leuchtröhrenhersteller +Betriebsratsobmann +Verlagskaufmann +Postrat +Maschinenschlosser, Technischer Fachbeamter der ÖBB +Finanzangestellter +Präsident der Arbeiterkammer, Metallarbeiter +Erbgerichtsbesitzer +Landesregierungsrat +Landesrat +Präsident der Wiener Arbeiterkammer +Keramiker +Präfekt der Landwirtschaftsschule in Katsdorf +Stadtratsbeamter und Landwirt +Fleischhauer +Vorsitzender der Gewerkschaft Metall-Bergbau-Energie +Angestellte der Kammer für Arbeiter und Angestellte für Steiermark +Hochofenbetriebsleiter +Oberregierungsrat, Leiter des Landesjugendamtes +Landeshauptmann und Bürgermeister von Wien +Verwaltungsbeamter +Kaufmännische Angestellte +Oberlehrer +Sparkassendirektor +Zentralsekretär der SPÖ +Maschinenschlosser +Amtsführender Präsident des Stadtschulrates für Wien +Bezirkssekretär der SPÖ +Gendarmerie-Abteilungsinspektor +Magistratsbeamtin +Klaviermacher +Werkmeister der Staatseisenbahnen +Lehrschwester +Kaufmann und Bauer +AHS-Lehrer +Oberstleutnant i. R. +Bezirksrauchfangkehrermeister +Maschinist +Sachbearbeiter +Sekretär des Vorarlberger Kriegsopferverbandes +Direktorin der Höheren Bundeslehranstalt für wirtschaftliche Frauenberufe Oberwart +Senatsrat +Porzellanmaler +Vorsitzender der Gewerkschaft der Arbeiter in der Land- und Forstwirtschaft, Forstarbeiter +Gemeindeobersekretär +Sozial- und Berufspädagogin +Richterin i.R. +Wirtschaftsbesitzer, Kaufmann +Sekretär der Textilarbeiter +Pflasterermeister und Bauunternehmer +Schmiedemeister +Direktor des NÖ Bauernbundes +Salinenmeister +Sektionschef im Bundesministerium für Unterricht +Selbständiger Kaufmann +Bahnbediensteter +Direktor der Niederösterreichischen Gebietskrankenkasse i. R. +Universitätsprofessor a.D. +Arzt, Präsident der Österreichischen und der Steiermärkischen Ärztekammer +Mittelschullehrerin +Handelsangestellter +Glasmacher +Generalsekretär des Österreichischen Wirtschaftsbundes +Kammeramtsdirektor-Stellvertreter +Sozialwissenschafter, Journalist +Bäuerin +Näherin +Unterbeamter der Österreichischen Staatsbahnen +Selbständiger Exportkaufmann +Landwirt und Hausbesitzer +Direktor des Österreichischen Wirtschaftsbundes, Landesgruppe Vorarlberg +Publizist +Vizekanzler und Bundesminister a.D. +Fachbeamter der ÖBB +Amtsleiter +Telegraphenwerkmeister +Landesjugendreferent, Mittelschulprofessor +Beamtin +Offizier des Bundesheeres +Generalsekretär des Katholischen Volksvereines für Oberösterreich +Zeitungsbeamter +Landesstellendirektor der Pensionsversicherungsanstalt der Arbeiter +Maschinenmeister der Österreichischen Bundesbahnen +Zahnmedizinische Assistentin, Hausfrau +Direktor des Verbandes der Krankenkassen für Steiermark und Kärnten +Fürsorgeamtsvorsteherin +Betriebs- und Steuerberater +Steindrucker +Oberinspektor der ÖBB +Vorstandsdirektor der Wiener Messe AG a. D. +Versicherungsdirektor +Landesbeamter-Verwaltungsdirektor +Lehrer an einer AHS +Bezirksstellenleiter der Niederösterreichischen Gebietskrankenkasse in Pöchlarn +Verlagsrepräsentant +Magistratsangestellte +Oberfinanzrat +Fabrikarbeiterin +Postamtsdirektor +Professor, Direktor des BRG Krems +Buchhandelsangestellte +Generalsekretär der Bundeskammer der gewerblichen Wirtschaft +Fabriksbesitzer +Oberamtsrat i. R. +Konsumvereinsleiter +Dechant +Pharmareferent +Lithograph +Gewerkschaftsangestellter +Praktischer Arzt +Lehrer, Landessekretär im Wiener ÖAAB +Bergingenieur +Leiter der wissenschaftlichen Abteilung der "Ravag" +Direktor der Pensionsversicherungsanstalt der Arbeiter i. R. +Landesbediensteter +Verlagsbuchhändler +Kammerbeamter i. R. +Sekretär des Tiroler Arbeitsbundes +Sekretärin der SdP Steiermark +Vorsitzender der Gewerkschaft der Chemiearbeiter +Landwirt und Weinhauer +Präsident des ÖGB +Nationalökonom +Pferdefrächter +Weber +Landessekretär der Bau- und Holzarbeiter Oberösterreichs +Oberschaffner +Technischer Inspektor der Österreichischen Bundesbahnen +Bürgerschuldirektor +Leitender Angestellter +Bundeskanzler +Kauffrau +Landwirt und Geschäftsführer +Finanzkommissär +Zentralsekretär des Gewerkschafts- und Rechtsschutzvereines der Eisenbahner Österreichs +Schuldirektor i. R. +Apotheker +Elektroinstallateur +Angestellter, Landesparteisekretär der SPÖ Kärnten +Inspektor der Unfallversicherung der Österreichischen Eisenbahnen +Förster +Vorsitzender Rat des Oberlandesgerichtes Wien +Sekretär der Kammer für Arbeiter und Angestellte für Vorarlberg +Gärtner +Kammeramtsleiter +Holzgroßhändler +Bezirksgeschäftsführer +Bankier +Lehrerin an einer Allgemeinbildenden Höheren Schule +Rechtsanwalt, Steuerberater +Sekretär der Landarbeiterkammer für Tirol +Frauenreferentin des ÖGB +Sekretär des ÖGB +Tabakarbeiterin i. R. +Oberlehrer i. R. +Landessekretär des Österreichischen Gewerkschaftsbundes, Landesexekutive Salzburg +Fertigungsassistent +Werkführer der Bundesbahnen i. R. +Anwalt der Sektion Steiermark des Hauptverbandes der Industrie Österreichs +Wagnermeister +Direktor des Niederösterreichischen Landesmusterkellers +Leiter des Kraftwagendienstes der ÖBB +Lohnbüroleiter, kaufmännischer Angestellter +Fachinspektor im Post- und Telegraphendienst +Offizial der Österreichischen Bundesbahnen i. R. +Justizbeamter +Gastwirt, Wirtschaftsbesitzer +Präsident der Bundesbahndirektion Villach +Geschäftsführer der Industriellenvereinigung, Landesgruppe Kärnten +Spenglermeister +Sekretär des Gewerkschafts- und Rechtsschutzvereines der Österreichischen Eisenbahner +Wirtschaftsberater +ao. Gesandter und bev. Minister a. D. +Privatschuldirektor +Präsident der Bundeskammer der gewerblichen Wirtschaft, Baumeister +Gehilfenobmann der Tischler +Chefadministrator +Bezirksvorsteher +Land- und Gastwirtin +Primarius, Facharzt für Innere Medizin +Landessekretär der Gewerkschaft der Privatangestellten +Schuldirektor +Schmiedbauer +Agraringenieur +Frauenlandessekretärin im ÖGB +Direktor der Chemischen Versuchsanstalt des Landes Vorarlberg +Molkereidirektor +Redakteur der "Arbeiter-Zeitung" +Kammeramtsdirektor der Arbeiterkammer für Tirol +Generalmajor a. D. +Öffentlicher Notar +Ackerbauschullehrer +Krankenkassenbeamter, Direktorstellvertreter +Sozialversicherungsbeamter +Nebenerwerbsbauer, Bankangestellter +Lagerhausdirektor i. P. +Stadtschulrat +Werbekaufmann +Sekretär der christlichsozialen Bundesparteileitung Österreichs +Landwirt und Mühlenbesitzer +Unternehmerin +Präsident des Österreichischen Bundesverlages für Unterricht, Wissenschaft und Kunst +Buchdruckereibesitzer +Private +Buch- und Papierhändler +Generaldirektor des Katholischen Volksbundes +Bau- und Steinmetzmeister +Wohnungswirtschafter +Bezirkssekretär +Landesangestellter +Revierinspektor +Handelskammerrat +Amtsführender Präsident des Salzburger Landesschulrates +Sektionschef +Bundesbahninspektor +Gauleiter der NSDAP +Schriftleiter +Kaufmann und Gewerbetreibender +Oberrevident der Bundesbahnen i. R., Präsident der Kammer für Arbeiter und Angestellte in Innsbruck +Schul- und Ausbildungsleiter +Genossenschaftsangestellter +Direktor des Österreichischen Landbundes +Graphiker +Maurer und Zimmermeister +Diplomkrankenschwester +Bahndirektionspräsident a. D. +Telegrapheninspektor, Präsident der Technischen Union +Landesoberbaurat, Staatssekretär +Amtsarzt und praktischer Arzt +Obmann des Verbandes der Bergarbeiter +Krankenkassenangestellter +Bundesminister für Verkehr, Innovation und Technologie +Sekretär der Kammer für Arbeiter und Angestellte für Tirol +Handelskammerangestellter +Bauernbundsekretär +Filmtechniker +Bauer und Sägewerksbesitzer +Generalstaatsbibliothekar a. D. +Angestellter der Niederösterreichischen Gebietskrankenkasse +Theologe, Universitätsassistent +Steuerberater +Direktor des Österreichischen Bauernbundes +Sekretär des Österreichischen Städtebundes +Vizekanzler und Bundesministerin für öffentliche Leistung und Sport +Landwirtschaftliche Hauswirtschaftslehrerin +Molkereibesitzer +Uhrmacher und Juwelier +Angestellter, Landesparteisekretär der SPÖ +Bürstenmacher +Bauerngutsbesitzer +Landesgerichtsrat +Technischer Revident i. R. +Beamter der ÖBB i. R. +Administrativer Direktor +Postbeamter, Gewerkschaftsobmann +Rechnungsbeamter +Fürsorgerin +Hüttenarbeiter (Schmied) +Heimarbeiterin +Landesgerichtsrat und Gerichtsvorsteher +Landesbeamter, Landwirt +Sekretär des Österreichischen Metallarbeiterverbandes +Juristin +Direktor der Zentralstelle des Volksbundes des Katholiken Österreichs +Fachschuldirektor +Forstarbeiter +Realschulprofessor +Baukaufmann +Polizeipräsident +Universitätsprofessor, Wirtschaftsbesitzer +Universitätsprofessor, Chirurg +Verwaltungssekretär der Gemeinde Wien +Theologieprofessor +Privatier +Sekretär des Bundes der freien Gewerkschaften +Leitender Sozialversicherungsangestellter +Wirtschaftstreuhänder, Unternehmensberater +Direktor des Oberösterreichischen Bauern- und Kleinhäuslerbundes +Gutsbesitzer, Geheimer Rat +Werkmeister der Österreichischen Bundesbahnen +Spediteur +Landestierzuchtinspektor +Senatspräsident +Präsident des Kriegsopferverbandes +Beamter des Rechnungsamtes der Stadt Wien +Landestierzuchtinspektor i. R. +Rechtanwalt +Angestellter der Landwirtschaftskammer für Vorarlberg +Sägewerksbesitzer +Bundesbeamter, Fachinspektor +Transportunternehmer +Generalsekretär des Österreichischen Städtebundes +Rechnungsdirektor der Buchhaltung der Generaldirektion der Post- und Telegraphenverwaltung +Gastwirt und Holzhändler +Staatssekretär im Bundeskanzleramt a.D. +Berufsschullehrer +Primarius, Nervenfacharzt +Bundesbahnoberinspektor +Vizekanzler und Bundesminister für europäische und internationale Angelegenheiten +Bürgerschullehrerin +Baupolier +Staatsbeamter +Diplomsozialarbeiter +Kammeramtsdirektor der Arbeiterkammer für Wien +Gewerkschaftsleiter +Hauptschuldirektor i.R. +Vizepräsidentin des ÖGB a. D. +Werkmeister der ÖBB +Außerordentlicher und bevollmächtigter Botschafter i. R. +Vorsitzender der Gewerkschaft Textil-Bekleidung-Leder +Schulungsbeamter der Österreichischen Bundesbahnen +Ärztlicher Leiter des Landeskrankenhauses Graz +Facharzt für Dermatologie +Sekretär der SPÖ +Direktor einer AHS +Sozialversicherungsangestellter, Abteilungsleiter +Landwirt und Forstarbeiter +Sekretär des Bundes Sozialistischer Akademiker, Intellektueller und Künstler (BSA) +Präsidentin der Katholischen Frauenorganisation für Oberösterreich +Postoberoffizial +Direktionssekretär der ÖBB +Konsulent und Wirtschaftsjurist +Religionslehrer +Gerichtsdolmetsch und Übersetzer +Handelsakademieprofessor +Landesparteisekretär der SPÖ +Oberkurator der Landeshypothekenanstalt für das Land Niederösterreich und das Burgenland, Präsident der Kammer für Handel, Gewerbe und Industrie in Wien +Pflichtschullehrer +Staatsbahnrat +Beamter der ÖBB i.R. +Regierungsforstdirektor +Leitender Sekretär des ÖGB +Schmiedemeister und Grundbesitzer +Beamter der Finanzlandesdirektion für Tirol i. R. +Gemeindearzt +Kammeramtsdirektor der Burgenländischen Landwirtschaftskammer +Bauer und Präsident der Niederösterreichischen Landwirtschaftskammer +Metallarbeitersekretär +Abteilungsinspektor des Kriminaldienstes i. R. +Manager +Professor an der Lehrerbildungsakademie in Wien +Generalsekretär des Reichsbauernbundes +Bauer, Postexpedient +Sekretär der Union der Textilarbeiter Österreichs +Assistentin der Geschäftsführung +Bürgerschuldirektor i. R. +Amtsführender Präsident des Landesschulrates für Oberösterreich +Hutmachermeister +Direktor der niederösterreichischen Landeslehrerbildungsanstalt am Pädagogium in Wien +Direktor des Oberösterreichischen Bauernbundes +Tierfutterfabrikant +Postmeister +Oberschaffner der Österreichischen Bundesbahnen +Prälat, o. Universitätsprofessor +Bürgermeister +Lehrer i. P. +Mühlen- und Wirtschaftsbesitzer +Genossenschaftsvorstand +Volksschuldirektorin +Leiterin des Arbeitsmarktservices Braunau am Inn +Generalsekretärin +Journalist und Pressesprecher +Bezirksbauernkammersekretär +Lebens- und Sozialberaterin +Finanzberater +Bediensteter des Klubs der Sozialdemokratischen Parlamentsfraktion +Generalsekretär der FPÖ +Klubobmann-Stellvertreter +Bankdirektor +Politikwissenschaftlerin +Landesbeamter i. R. +Bundesminister für Finanzen +Bundesministerin ohne Portefeuille +Bundesminister für Justiz +Bundesminister für Wissenschaft, Forschung und Kunst +Vorsitzender des Österreich-Konvents +Bundesministerin a.D. +Kleinkindpädagogin +Direktor der Arbeiterkammer NÖ +Landesschulinspektor NÖ +Sonderschullehrer +Klubobmann +Geschäftsleiter +Landeshauptmann von Tirol +Bürgermeister und Landwirt +Dritter Präsident des Nationalrates, Ordentlicher Universitätsprofessor +Dritter Präsident des Nationalrates +Hochschullehrer +Staatsanwältin i. R. +Gendarmeriebeamter +Leitende Angestellte +Gastronomin +Uhrmachermeister und Jurist +Koordinatorin +Lektor, Journalist +Selbständiger Unternehmensberater +Fachärztin für Zahn-, Mund- und Kieferheilkunde +Industriekonsulent +Professorin an der Berufspädagogischen Akademie des Bundes +Historiker, Bibliothekar +Touristikkauffrau +Lehrerin, Historikerin +Landeshauptmann von Burgenland +Landeshauptmann von Niederösterreich +Landeshauptmann von Salzburg +Landeshauptmann von Vorarlberg +Landeshauptmann von Wien +Geschäftsführerin Club Burgenland +Fachärztin für Innere Medizin, ärztlicher Abteilungsvorstand +Geschäftsführerin +Kulturmanager, Lektor, Journalist, Geschäftsführer +Landeshauptmann von Oberösterreich +Bezirkssekretär des Oberösterreichischen Bauernbundes +Bundesminister für Finanzen a.D. +Bundesministerin für auswärtige Angelegenheiten +Bundesministerin für Bildung, Wissenschaft und Kultur a.D. +Generaldirektor +Erwachsenenbildnerin +Sozialpädagogische Leiterin eines sozialökonomischen Betriebes +Zweiter Präsident des Nationalrates +Fachärztin für Radiologie, Primarärztin +Bauer, Landesgeschäftsführer des Österreichischen Schwarzen Kreuzes +Hauptschuldirektor i.P. +Marktamtsdirektor +Landesgeschäftsführer der SPÖ Kärnten +Präsident des Rechnungshofes +Postbediensteter +Lehrerin an der Bundesbildungsanstalt für Kindergartenpädagogik Linz +Amtsführender Stadtrat a.D. +Stellvertretender Bundesvorsitzender der Gewerkschaft Metall-Textil-Nahrung +Schriftsteller, Journalist +Hofrat des Obersten Gerichtshofes a.D. +Freiberuflicher Schriftsteller und Herausgeber +Präsidentin des Nationalrates, Soziologin +Staatssekretär im Bundesministerium für Finanzen +Bankangestellter +Lehrer an einer Handelsakademie +Gastwirtin +Stellvertretender Landesgeschäftsführer der ÖVP Oberösterreich +Landesgeschäftsführer des Oberösterreichischen Seniorenbundes +Abgeordneter +Betriebswirt +Winzerin +Justizwachebeamter +Generalsekretär der ÖVP +Dipl. Gesundheits- und Krankenschwester +Selbständiger Handelsvertreter +Professorin +Fachoberlehrer +Staatssekretär im Bundesministerium für Verkehr, Innovation und Technologie a.D. +Journalist und Buchautor +Sportlehrerin +Schauspielerin +Wirtschaftsprüfer und Steuerberater +Angestellter, freigestellter Betriebsrat +Bundesministerin für Frauen und öffentlichen Dienst +Lehrerin an einer HTL +Hauptschullehrerin (karenziert) +Molekularbiologin +Kürschnermeister +Umwelttechniker +Inhaber eines Technischen Büros +Leiterin der Stabsstelle Controlling in der Steiermärkischen Krankenanstalten GmbH +Kraftfahrzeugmechaniker +Vorstand einer AG +Profisportler +Unternehmer und Forstwirt +Geschäftsstellenleiter des AMS i.R. +Redakteurin +Generalsekretärin des Verbandes der Elektrizitätsunternehmen Österreichs +Bundesministerin für Inneres +Geschäftsführendes Vorstandsmitglied +Klubobfrau der Grünen, Juristin +Hochschullehrer, Arzt +Volkswirt +Selbständig in der EDV-Branche +Dolmetscherin, Journalistin +Kontrollstellenleiter einer Zertifizierungsstelle für biologische Landwirtschaft +Selbständig - Quelle Agentur +Bundesministerin für soziale Sicherheit und Generationen +Bundesminister für Wirtschaft, Familie und Jugend +Maschinenbauer +Immobilientreuhänder, Baumanagement +Wirtschaftsbunddirektor +Leiterin des Bereiches Wirtschaft in der AK Wien +Sprecherin und Redakteurin +Vizepräsidentin des ÖGB +Geschäftsstellenleiter des AMS Judenburg +Pressesprecherin +Beraterin für Organisationsentwicklung +Landesgeschäftsführerin der ÖVP-Frauen NÖ +Dipl.-Sozialarbeiterin +Pflegehelferin +Technischer Beamter - Telekom Austria +Landessekretär der Fraktion Sozialdemokratischer GewerkschafterInnen, Landesgruppe Wien +Generalsekretär +Lehrerin an einer Höheren Bundeslehranstalt für wirtschaftliche Berufe +Facharbeiter +Landwirt und Landesbeamter +Landwirtschaftsmeister +Generalsekretär der UNO +Assistentin der kaufmännischen Geschäftsführung der Niederösterreichischen Landeskliniken-Holding +Präsident des Tiroler Landtags +Pädagogische Mitarbeiterin +Bundesgeschäftsführerin der Grünen Österreichs +Bewährungshelferin +Landesgeschäftsführer der Steirischen Volkspartei +Technisches Büro für Forstwirtschaft +Abgeordnete +Unternehmensberaterin +PR-Berater +Dipl.-Sozialarbeiterin, Psychotherapeutin und Mediatorin +KFZ-Unternehmer +Betriebsratsvorsitzender beim Roten Kreuz Oberösterreich +Freie Journalistin +Produktionstechniker +Wirtschaftsprüfer +Geschäftsstellenleiterin (AMS Zell am See) +Landessekretär der Gewerkschaft Metall-Textil-Nahrung +Geschäftsführerin der SPÖ Bundesfrauenorganisation +Bürgermeister, Angestellter +Bibliothekarin +Vermessungsingenieur +Betriebswirtin +Vizepolier am Bau +Landesgeschäftsführer des Niederösterreichischen Arbeiter- und Angestelltenbundes +Stadträtin +Stellvertretende Landesparteisekretärin +Bankmanager +Privatgelehrter, Landwirt +Vizekanzler und Bundesminister für Verkehr, Innovation und Technologie a.D. +Vizekanzler und Bundesminister für Finanzen a.D. +Staatssekretär im Bundesministerium für europäische und internationale Angelegenheiten +PR-Beraterin +Kammerangestellter i.R. +Berufsoffizier i.R. +Landwirtschaftsmeisterin +Gemeindesekretärin +Vertragsbediensteter (Gemeindesekretär) +Bürgermeisterin +Dolmetscherin +Amtsführende Stadträtin +Landtagsdirektor +Ordensfrau +Landtagspräsident +Präsident des Verfassungsgerichtshofes +Leitende Juristin im Niederösterreichischen Landesdienst +Bürgermeister und Unternehmer +Polizeivizepräsidentin +Assistenzprofessor +Präsident des Obersten Gerichtshofes +Präsident der Bundesarbeitskammer +Clubobmann der Kärntner Volkspartei +Landesstatthalter +Landtagspräsident, Bauingenieur +Studentin +Landessekretär des ÖGB Oberösterreich +Ökonomin, Universitätslektorin +ÖBB-Beamter i. R. +Bundesbediensteter +AMS-Geschäftsstellenleiter +Bauer, landwirtschaftlicher Meister +Landeshauptfrau von Salzburg +Lehrerin an einer BHS +Zweiter Landtagspräsident +Kursleiterin - WIFI Burgenland +Bundesminister für Landesverteidigung und Sport +Bundesministerin für Justiz a.D. +Journalistin und Gastwirtin +Vertragsbediensteter - Offizier +Kulturwissenschafter, Künstler +Jurist, Sektionsleiter +Optikermeister +Bürgermeisterin und Buchhalterin +Systemtechniker +Amtsführender Präsident des Landesschulrates für Steiermark +Arbeitsvorbereitung, Angestellte +Dipl. Sozialarbeiterin +Ärztin +Arzt für Allgemeinmedizin +Versicherungsangestellte +Bundesministerin für Justiz +Exekutivbeamter, Bürgermeister +Finanzbeamtin +Exekutivbeamter +Bundessprecher des Liberalen Forums (LIF) +Politikwissenschafterin +Volksschullehrerin +Lehrer an einer Bundeshandelsschule und Bundeshandelsakademie +Vertragsbediensteter beim Amt der Burgenländischen Landesregierung +Montanist +Angestellte, Juristin +Lehrer an der Handelsakademie und Handelsschule Tulln, Wirtschaftspädagoge +Bundesminister für Wissenschaft und Forschung a.D. +Staatssekretärin a.D. +Zahntechniker +Gastronom +Sekretär der Gewerkschaft der Privatangestellten +AHS-Lehrerin +Leitende Sekretärin im ÖGB +Dispoleiter Mineralöltransporte +Dipl.-Sozialarbeiter +Caféhausbetreiberin +Fahrschulunternehmerin +Bilanzbuchhalterin +Bautechniker +Verleger und Fotograf +Instruktor +Landeshauptmann von Kärnten +Angestellter der AK Niederösterreich +Geschäftsführer der Grazer Volkspartei +Betriebsrat +Unternehmer (Unternehmensberater) +Facharzt für Zahn-, Mund- und Kieferheilkunde +Unteroffizier +selbständiger Unternehmer +Bäcker- und Konditormeister +Kompaniekommandant +Betriebsleiter, Unternehmer +Leitende Angestellte (Bundesgeschäftsführerin) +Veterinärmediziner +Projektkoordinatorin im Bereich erneuerbare Energie +Juristin, Mediatorin +Direktor am Gymnasium Feldkirch +Diplomierte Sozialarbeiterin +Rauchfangkehrermeister +Kriminalbeamter +Bundesminister für Gesundheit +Bundesminister für Land- und Forstwirtschaft, Umwelt und Wasserwirtschaft +Bundesminister für Arbeit, Soziales und Konsumentenschutz +Staatssekretär im Bundeskanzleramt +Vorstandsdirektor +Abgeordnete zum Europäischen Parlament +Leiterin der Stabsstelle EU und Internationales des ÖGB +Philologin +Dipl. Übersetzerin +Bezirksschulinspektorin +Unternehmens- und Vermögensberater +Rechtsanwaltsanwärterin +Bediensteter der Raab-Ödenburg-Ebenfurter Eisenbahn +Landesparteisekretär der FPÖ Wien +Staatssekretärin im Bundesministerium für Wirtschaft, Familie und Jugend a.D. +Staatssekretär im Bundesministerium für Inneres +Klinischer- und Gesundheitspsychologe \ No newline at end of file diff --git a/data/rentalequipment.txt b/data/rentalequipment.txt new file mode 100644 index 0000000..52aebb9 --- /dev/null +++ b/data/rentalequipment.txt @@ -0,0 +1,89 @@ +Abbruchhammer (elektr. / Benzin) +Akku-Bohrhammer , zb f Beton +Akku-Winkelschleifer +Auftaugerät +Bandschleifer +Belagentferner (Stripper oder Fräse) +Betonmischer (120 l) +Betonrüttler (Flaschenrüttler) +Bohrhammer (5 - 100 mm ø) +Brunnenpumpe (Hand) +Brunnenschlaggerät (elektr. / Benzin) +Diamant-Steinsäge (div. Modelle) +Einfriergerät (bis 5/4") +Einscheibenschleifgerät +Entfeuchtungsgerät +Erdbohrer (Benzin) 10/15/20 cm*) +Erdbohrer (Hand) 10/15/20 cm +Erdungs-Schlaggerät +Estrichfräse 200 mm +Eternitschneider +Fischerlmaschine +Flaschenrüttler +Fliesenschneider (bis 1.200 mm) +Fliesenschneider (elektr. bis 1.500 mm) +Fußbodenrandmaschine +Fußbodenschleifer +Gartenwalze +Grabenfräse (für ca. 10x30 cm BxT) +Häcksler (- 5 cm Ø) +Handkreissäge + Führungsschiene +Heckenschere (elektr.) +Heftpistole (elektr.) +Heizgerät (elektr.) +Heizkanone (Gas) +Hobelmaschine 80 mm +Hochdruckreiniger +Hochgrasmäher +Holzspalter 8T 380 V +Kabelfräse für Mähroboter +Kapp- und Gehrungssäge +Kernbohrgerät (- 250 mm) +Kettensäge (elektr. / Benzin) +Kettenzug +Kompressor 230 V / 220 l +Kompressor 400 V / 500 l +Laminatschneider +Leiter ca. 10 m Arbeitshöhe +Mauerfräse 2 - 10 cm (auch mit Sauger für Beton) +Motorfräse +Motorhacke +Motorsense +Muffenschweißgerät +Nass-Schneidegerät (div. Modelle) +Notstromgerät 2 bis 10 kW +Palettenhubwagen +Paneelsäge +Parkettbodenschleifer +Plattenrüttler +Plattenschneider (bis 1.500 mm) +Plattenstampfer +Poliermaschine +Prüfpumpe für Wasserleitung +Rasenmäher, Benzin +Rohrreiniger (E-Feder) +Rohrschneider (60 mm) +Rührwerk +Sackrodel +Schneidkluppe (elektr. - 2") +Schweiß-Inverter +Staubsauger +Steinspalter für Betonsteine +Stemmhammer (Boden / Wand) +Stichsäge +Streuwagen +Stripper (E-Abziehspachtel für Teppiche, Beläge) +Südbahnwinde +Tapetenlöser (Dampfgerät) +Tauchpumpe 17 m3/h +Tellerschleifer (400 Ø) +Teppichentferner +Teppichreinigungsgerät +Transportrodel +Verlängerungskabel 230 V / 400 V +Vertikutierer (elektr. / Benzin) +Waschmaschine für Böden +Wassersauger +Winkelbohrmaschine +Winkelpolierer +Winkelschleifer \ No newline at end of file diff --git a/data/streets.txt b/data/streets.txt new file mode 100644 index 0000000..6195185 --- /dev/null +++ b/data/streets.txt @@ -0,0 +1,1769 @@ +A 23 Autobahn Südosttangente Wien +A23R43 km 0.00-1.208 +A4R9 +Abbegasse +Abelegasse +Abermanngasse +Abraham-a-Sancta-Clara-Gasse +Abraham-a-Sancta-Clara-Straße +Absbergbrücke +Absberggasse +Abstellhalle Kagran +Abt-Karl-Gasse +Abtsbergengasse +Achamergasse +Achardgasse +Achengasse +Achtergasse +Achtundvierzigerplatz +Ackerweg +Ada-Christen-Gasse +Adalbert-Stifter-Straße +Adam-Betz-Gasse +Adambergergasse +Adamovichgasse +Adamsgasse +Adelheid-Popp-Gasse +Adelheid-Popp-Hof +Aderklaaer Straße +Adolf-Amadeo-Gasse +Adolf-Blamauer-Gasse +Adolf-Czettel-Gasse +Adolf-Gstöttner-Gasse +Adolf-Kirchl-Gasse +Adolf-Loos-Gasse +Adolf-Loos-Weg +Adolf-Lorenz-Gasse +Adolf-Scharner-Hof +Adolf-Schmidl-Gasse +Adolf-Unger-Gasse +Adolf-Uthmann-Gasse +Adolfstor +Adolfstorgasse +Adolfstorsteg +Adonisweg +Ägidigasse +Ährengrubenweg +Äugelbrücke +Äugelgasse +Afrikanergasse +Afritschgasse +Agavenweg +Agnesgasse +Agricolagasse +Ahornergasse +Ahornhof +Ahornweg +Aichbühelgasse +Aichholzgasse +Aichhorngasse +Aidagasse +Aignersteg +Aignerstraße +Ailecgasse +Aistgasse +Akademiestraße +Akaziengasse +Akazienhof +Akeleiweg +Akkonplatz +Aladar-Pecht-Gasse +Alaudagasse +Alban-Berg-Weg +Albatrosgasse +Alberichgasse +Albern +Alberner Hafen +Alberner Hafenzufahrtsstraße +Alberner Straße +Albert-Schultz-Eishalle +Albert-Schultz-Hof +Albert-Schweitzer-Gasse +Albertgasse +Albertinapassage +Albertinaplatz +Albertisgasse +Albertplatz +Albin-Hirsch-Platz +Albrechtsbergergasse +Albrechtskreithgasse +Aldo-Moro-Hof +Alexander-Mell-Gasse +Alexander-Nehr-Gasse +Alexander-Nehr-Hof +Alexander-Poch-Platz +Alfons-Mucha-Weg +Alfons-Petzold-Gasse +Alfons-Petzold-Hof +Alfred-Dallinger-Platz +Alfred-Grünfeld-Gasse +Alfred-Grünwald-Park +Alfred-Huth-Gasse +Alfred-Kubin-Platz +Alfred-Nobel-Straße +Alfred-Pischof-Gasse +Alfred-Porges-Hof +Alfred-Stix-Platz +Alfred-Wegener-Gasse +Alfred-Wunsch-Hof +Algenweg +Alice-und-Heinrich-Scheuer-Hof +Allerheiligengasse +Allerheiligenpark +Allerheiligenplatz +Allgemeines Krankenhaus +Alliiertenstraße +Alliogasse +Allißengasse +Alma-König-Weg +Alma-Rose-Gasse +Alma-Seidler-Weg +Almgasse +Almweg +Alois-Appel-Hof +Alois-Behr-Straße +Alois-Czedik-Gasse +Alois-Czedik-Steg +Alois-Dachs-Gasse +Alois-Drasche-Park +Alois-Eyermann-Weg +Alois-Grandl-Weg +Alois-Höfler-Gasse +Alois-Kraus-Promenade +Alois-Küblböck-Hof +Alois-Negrelli-Gasse +Aloisgasse +Alpengartenstraße +Alpengasse +Alpiltoweweg +Alsegger Straße +Alser Straße +Alserbachstraße +Alsgasse +Alszeile +Altdorferstraße +Alte Laaer Straße +Alte Straße +Alte Walfischgasse +Alte Wehrbrücke +Altebergenstraße +Alter Wiener Weg +Altes Allgemeines Krankenhaus +Altgasse +Althanstraße +Altmannsdorfer Anger +Altmannsdorfer Friedhof +Altmannsdorfer Straße +Altmannsdorfer Tunnel +Altmüttergasse +Altomontegasse +Altwirthgasse +Alvarsgasse +Alxingergasse +Am Abhang +Am Badfeld +Am Bahnhof +Am Belvedere +Am Bergl +Am Bisamberg +Am Brigittenauer Sporn +Am Bruckhaufen +Am Cobenzl +Am Europlatz +Am Fasangarten +Am Freihof +Am Fuchsenfeld +Am Gestade +Am Häufel +Am Hasensprung +Am Heidjöchl +Am Heumarkt +Am Himmel +Am Himmelhof +Am Himmelreich +Am Hof +Am Hofgartel +Am Hubertusdamm (Donaustadt) +Am Hubertusdamm (Floridsdorf) +Am Hubertusdamm Wasserpark +Am Hundsturm +Am Johannesberg +Am Kabelwerk +Am Kahlenberg +Am Kaisermühlendamm +Am Kanal +Am Krautgarten +Am Laaer Berg +Am langen Felde +Am Leberberg +Am Leopoldsberg +Am Meisenbühel +Am Modenapark +Am Mühlwasser +Am Müllnermais +Am Neustiftblick +Am Nordbahndamm +Am oberen Kirchberg +Am Platz +Am Predigtstuhl +Am Rain +Am Rohrhaus +Am Rollerdamm +Am Rosenberg +Am Rosenhügel +Am Russwasser +Am Sandberg +Am Schafberg +Am Schierlinggrund +Am Schilf +Am Schöpfwerk +Am Schulweg +Am Schutzdamm +Am Spiegeln +Am Spitz +Am Stadtpark +Am Tabor +Am Tivoli +Am Weingebirg +Am Wolkersberg +Amalgergasse +Amalie-Seidel-Weg +Amalienbad +Amalienstraße +Amarantgasse +Ambergergasse +Ambrosigasse +Ambrosweg +Ambulatorium Süd +Ameisbachzeile +Ameisbrücke +Ameisbügel +Ameisgasse +Amerlingstraße +Ammerweg +Amongasse +Amortgasse +Amperegasse +Ampferergasse +Amselgasse +Amstergasse +Amtshausgasse +Amtsstraße +Amundsenstraße +An den alten Schanzen +An den Eisteichen +An den Froschlacken +An den Kohlenrutschen +An den langen Lüssen +An den Steinfeldern +An der Au +An der Bien +An der Grenze +An der Hölle +An der Hülben +An der Kuhtrift +An der Liesing +An der Neurisse +An der Niederhaid +An der oberen Alten Donau +An der Ostbahn +An der Pogrelzstraße +An der Schanze +An der Scheibenwiese +An der Schloßmauer +An der Töllerschanze +An der unteren Alten Donau +An der Zwerchwiese +Anastasius-Grün-Gasse +Anatourgasse +Andayweg +Andergasse +Andersengasse +Andlergasse +Andorngasse +Andreas-Hofer-Straße +Andreas-Huger-Gasse +Andreas-Lechner-Straße +Andreas-Urteil-Weg +Andreasgasse +Andreaspark +Andromeda Tower +Anemonenweg +Angela-Stadtherr-Gasse +Angelibad +Angeligasse +Angerer Straße +Angergasse +Angermayergasse +Anglerweg +Angoraweg +Angyalföldstraße +Anichweg +Anilingasse +Anisgasse +Anna-Boschek-Hof +Anna-Figl-Weg +Anna-Frauer-Gasse +Anna-Hand-Weg +Annagasse +Annie-Rosar-Weg +Anningerweg +Anreitergasse +Anschlußgasse +Anschützgasse +Antaeusgasse +Anton-Anderer-Platz +Anton-Balzer-Weg +Anton-Baumann-Park +Anton-Baumgartner-Straße +Anton-Böck-Gasse +Anton-Bosch-Gasse +Anton-Burg-Gasse +Anton-Dengler-Gasse +Anton-Figl-Hof +Anton-Frank-Gasse +Anton-Freunschlag-Gasse +Anton-Geiger-Weg +Anton-Haberzeth-Gasse +Anton-Haidl-Gasse +Anton-Heger-Platz +Anton-Hölzl-Hof +Anton-Karas-Platz +Anton-Katschinka-Hof +Anton-Kohl-Hof +Anton-Kolig-Gasse +Anton-Krieger-Gasse +Anton-Kuh-Weg +Anton-Langer-Gasse +Anton-Matourek-Hof +Anton-Ochsenhofer-Gasse +Anton-Proksch-Wohnhausanlage +Anton-Sattler-Gasse +Anton-Schall-Gasse +Anton-Scharff-Gasse +Anton-Schmid-Hof +Anton-Schrammel-Hof +Anton-Steinböck-Gasse +Anton-Störck-Gasse +Anton-Strutzenberger-Weg +Anton-von-Webern-Platz +Antonie-Alt-Hof +Antonie-Platzer-Gasse +Antonigasse +Antonsplatz +Anzbachgasse +Anzengruber Brücke +Anzengrubergasse +Anzengruberstraße +Apfelgasse +Apfelrosenweg +Apollogasse +Apostelbad +Apostelgasse +Aquäduktsteg +Arabellagasse +Arakawastraße +Arbeitergasse +Arbeiterstrandbad +Arbeiterstrandbadstraße +Arbeiterunfallkrankenhaus +Arbesbachgasse +Arenberggasse +Arenbergpark +Ares Tower +Argauergasse +Argentinierstraße +Argonautenstraße +Aribogasse +Arlethgasse +Arltgasse +Armbrustergasse +Arminenstraße +Arndtstraße +Arne-Carlsson-Park +Arnethgasse +Arnezhoferstraße +Arnikaweg +Arnimgasse +Arnold-Holm-Gasse +Arnoldgasse +Arnsburggasse +Arnsteingasse +Arsenal +Arsenalstraße +Arsenalweg +Artariabrücke +Artariastraße +Arthaberplatz +Artillerieplatz +Artmanngasse +Arzbergergasse +Arztgasse +Aschbachgasse +Aschergasse +Aslangasse +Aspangbahn +Aspangbahnhof +Aspangstraße +Asparagusweg +Aspernallee +Aspernbrücke +Aspernbrückengasse +Asperner Friedhof +Asperner Heldenplatz +Aspernstraße +Aßmayergasse +Astgasse +Astrid-Lindgren-Schule +Ateliergasse +Attemsgasse +Atzgersdorf-Mauer Frachtenbahnhof +Atzgersdorfer Friedhof +Atzgersdorfer Straße +Atzlergasse +Auckenthalergasse +Audorfgasse +Auenbruggergasse +Auer-Welsbach-Park +Auer-Welsbach-Straße +Auerhahngasse +Auernheimergasse +Auerspergstraße +Auf der Haide +Auf der Schanz +Auf der Schmelz +Auf der Schottenwiese +Aufgelassen +Augarten +Augartenbrücke +Augasse (Alsergrund) +Augasse (Hietzing) +Augentrostgasse +Augrundweg +August-Bergmann-Hof +August-Forel-Gasse +August-Fuerst-Hof +August-Greiml-Weg +August-Kronberger-Gasse +August-Motz-Rettungsstation +August-Reuss-Gasse +August-Ritt-Brücke +August-Scholz-Hof +August-Sigl-Straße +Augustinerbastei +Augustinerstraße +Augustinerwald +Augustinerwaldbrücke +Auhirschenweg +Auhofbrücke +Auhofstraße +Aumannplatz +Aumühlstraße +Aurikelweg +Ausjagdweg +Auspitzgasse +Aussichtsturmbrücke +Aussichtsweg +Ausstellungsstraße +Austerlitzhof +Autobahnstation Wiental +Autofabrikstraße +Autokaderstraße +Auwinkel +Avedikstraße +Awarenstraße +Ayrenhoffgasse +Azaleengasse +B 227 Donaukanal Straße +Baaderwiesenweg +Babenbergerstraße +Babitschgasse +Bacherpark +Bacherplatz +Bachgasse +Bachofengasse +Bachrachgasse +Bachzeile +Bad Krapfenwaldl +Badeteich Hirschstetten +Badeteich Süßenbrunn +Badewinkel +Badgasse (Alsergrund) +Badgasse (Penzing) +Badhausgasse +Badhaussteg +Bäckenbrünnlgasse +Bäckerstraße +Bärengasse +Bäuerlegasse +Bahndammweg +Bahnfeldweg +Bahnhof Atzgersdorf-Mauer +Bahnhof Brigittenau +Bahnhof Donaukai +Bahnhof Donauuferbahn +Bahnhof Floridsdorf +Bahnhof Gersthof +Bahnhof Hadersdorf-Weidlingau +Bahnhof Hafen Lobau +Bahnhof Heiligenstadt +Bahnhof Hernals +Bahnhof Hütteldorf-Hacking +Bahnhof Inzersdorf-Metzgerwerk +Bahnhof Inzersdorf-Ort +Bahnhof Jedlesee +Bahnhof Kagran +Bahnhof Klein-Schwechat +Bahnhof Liesing +Bahnhof Maxing +Bahnhof Meidling +Bahnhof Nußdorf +Bahnhof Ottakring +Bahnhof Siemensstraße +Bahnhof Stadlau +Bahnhof Stammersdorf +Bahnhof Traisengasse +Bahnhof Wien-Mitte +Bahnhof Wien-Nord +Bahnhof Zentralfriedhof +Bahnhofplatz +Bahnhofstraße +Bahnlände +Bahnsteggasse +Bahnstraße +Bahnwächterhaus (Favoriten) +Bahnwächterhaus (Floridsdorf 1) +Bahnwächterhaus (Floridsdorf 2) +Bahnwächterhaus (Hietzing) +Bahnwächterhaus (Simmering) +Bahnweg +Baldassgasse +Balderichgasse +Baldiagasse +Balgavyweg +Ballgasse +Ballhausplatz +Balsaminengasse +Bambergergasse +Bandgasse +Bankgasse +Barakgasse +Baranygasse +Barawitzkagasse +Barbaragasse +Barbenweg +Barichgasse +Barmherzige Brüder +Barmherzige Schwestern +Barmherzigengasse +Barnabitengasse +Baron-Karl-Gasse +Bartensteingasse +Barthgasse +Bartschweg +Baschgasse +Basler Gasse +Bastiengasse +Batkagasse +Batschegasse +Battiggasse +Baudißgasse +Bauernfeldgasse +Bauernfeldplatz +Bauernmarkt +Bauernweg +Baumannstraße +Baumberggasse +Baumeisterbrücke +Baumeistergasse +Baumergasse +Baumgarten Brücke +Baumgartenstraße +Baumgartner-Casino-Park +Baumgartner Friedhof +Baumgartner Höhe +Baumgasse +Baumschulweg +Bayerngasse +Beatrixbrücke +Beatrixgasse +Bebelhof +Bechardgasse +Beckgasse +Beckmanngasse +Bedienungssteg +Beduzziweg +Beer-Hofmann-Gasse +Beer-Hofmann-Weg +Beerhof +Beethovengang +Beethovengasse +Beethovenplatz +Beethovensteg +Beethovenstraße +Begonienweg +Beheimgasse +Behselgasse +Bei den Meierhöfen +Beichlgasse +Beingasse +Bela-Laszky-Gasse +Belghofergasse +Belgradplatz +Bellariastraße +Bellegardegasse +Bellevuestraße +Bellgasse +Bellgassensteg +Bellinigasse +Belvedereallee +Belvederegasse +Benatzkygasse +Bendagasse +Bendlgasse +Benedikt-Schellinger-Gasse +Benischkegasse +Benjowskigasse +Benndorfgasse +Bennogasse +Bennoplatz +Bensasteig +Bentheimstraße +Berchtoldgasse +Bergengasse +Bergenstammgasse +Berggasse +Bergheidengasse +Berglergasse +Bergmillergasse +Bergsteiggasse +Bergtaidingweg +Bergweg +Bergzeile +Beringgasse +Berlagasse +Berlepschgasse +Berliner Hof +Bernadottegasse +Bernardgasse +Bernatzikgasse +Bernhard-Billes-Gasse +Bernhard-Bolzano-Gasse +Bernhardinerallee +Bernhardtstalgasse +Bernoullistraße +Bernreiterplatz +Berresgasse +Bertegasse +Bertha-von-Suttner-Gasse +Bertha-von-Suttner-Hof +Berthold-Viertel-Gasse +Bertlgasse +Bertoldusgasse +Bertoligasse +Berzeliusgasse +Berzeliusplatz +Beschußamt +Bessemerstraße +Bethlengasse +Betriebsumkehrschleife +Bettelheimstraße +Betty-Fischer-Weg +Betty-Roose-Weg +Beyfusgasse +BHF. Jedlersdorf +Biberhaufenweg +Bibernellweg +Biberstraße +Biblgasse +Bickellgasse +Biedergasse +Biedermanngasse +Bieler Hof +Bienefeldgasse +Bienengasse +Bienenweg (Hernals) +Bienenweg (Simmering) +Bienweg +Biererlgasse +Bierhäuselberggasse +Biljan-Bilger-Gasse +Billergasse +Billgasse +Billrothstraße +Billrothstraßenbrücke +Binagasse +Bindergasse +Bindingweg +Binsenweg +Biotopweg +Biraghigasse +Birkenhof +Birkenstockgasse +Birkenweg +Birkenwiese +Birnbaumgasse +Birneckergasse +Birnersteig +Birostraße +Bisamberg Sender +Bischof-Faber-Platz +Bischoffgasse +Bischofgasse +Bischofplatz +Bitterlichstraße +Bitterlichstraßenbrücke +Björnsongasse +Blaasstraße +Blanche-Aubry-Weg +Blaschkagasse +Blaselgasse +Blathof +Blattgasse +Blebanngasse +Blechschmidtgasse +Blechturmgasse +Bleibtreustraße +Bleichergasse +Bleichsteinerstraße +Bleigasse +Bleriotgasse +Blindengasse +Bloschgasse +Bloschgassenbrücke +Blümelgasse +Blümelhubergasse +Blütengasse +Blumauergasse +Blumberggasse +Blumenbindergasse +Blumengasse +Blumenstockgasse +Blumentalbrücke +Blumentalgasse +Blutgasse +BMX-Bahn-Tunnel +Bobiesgasse +Bockbergergasse +Bockkellerstraße +Bodenstedtgasse +Bodmergasse +Böckhgasse +Böckingstraße +Böcklinstraße +Böheimgasse +Böhmgasse +Böhmmühlgasse +Boergasse +Boerhaavegasse +Börnergasse +Börnsteingasse +Börsegasse +Börseplatz +Bösendorferstraße +Böttgerweg +Bognergasse +Bohattasteg +Bojanusgasse +Boltensterngasse +Boltzmanngasse +Bombekgasse +Bonitzgasse +Bonygasse +Borkowskigasse +Borschkegasse +Boschettigasse +Boschstraße +Bossigasse +Bowitschgasse +Brabbeegasse +Brachelligasse +Brachsengasse +Brachtlgasse +Brändströmgasse +Bräuhausgasse +Bräunerstraße +Braheplatz +Brahmsplatz +Braillegasse +Brambillagasse +Brammergasse +Brandgasse +Brandmayergasse +Brandstätte +Brantinggasse +Brauereisteg über die Liesing +Brauergasse +Brauhausbrücke +Braumüllergasse +Braungasse +Braunhirschengasse +Braunhubergasse +Braunschweigbrücke +Braunschweiggasse +Braunspergengasse +Brausewettergasse +Brechergasse +Brehmstraße +Breite Gasse +Breiteneckergasse +Breitenfelder Gasse +Breitenfurter Straße +Breitenlee +Breitenlee Frachtenbahnhof +Breitenleer Friedhof +Breitenleer Straße +Breitenseer Straße +Breitenweg +Brennergasse +Brestelgasse +Bretschneidergasse +Breuergasse +Breuergrund an der Prager Straße +Breuninggasse +Brigittagasse +Brigittaplatz +Brigittenauer Brücke-Strombrücke +Brigittenauer Lände +Brigittenauer Steg +Brioschiweg +Brixweg +Brockhausengasse +Brockmanngasse +Brodschekhof +Brosamergasse +Broßmannplatz +Bruckhaufner Hauptstraße +Brückenweg +Brüder-Albert-Gasse +Brüder-Heindl-Gasse +Brühlgasse +Bründelgasse +Bründlsteig +Brünner Straße +Brünnlbadgasse +Brünnlweg +Brüßlgasse +Brunellengasse +Brunhildengasse +Brunnengasse +Brunnenhof +Brunnenmarkt +Brunnenstubengasse +Brunnenstubenweg +Brunnenweg +Brunner-Lehenstein-Gasse +Brunnerweg +Brunngraberhof +Brunnweg +Bruno-Kreisky-Gasse +Bruno-Kreisky-Hof +Bruno-Kreisky-Platz +Bruno-Kreisky-Schule +Bruno-Marek-Hof +Bruno-Pezzey-Weg +Bubergasse +Buchbergstraße +Buchbindergasse +Buchengasse +Buchenweg +Buchfeldgasse +Buchfinkweg +Buchleitengasse +Buchsgasse +Buckalgasse +Budaugasse +Budinskygasse +Büdingergasse +Bühlerweg +Bürgergasse +Bürgermeisterweg (Meidling) +Bürgermeisterweg (Währing) +Bürgerspitalgasse +Bürgerspitalwiese +Büttnergasse +Bugstraße +Bujattibrücke +Bujattigasse +Bukovicsgasse +Bullagasse +Bullgasse +Bundesländerhof +Bundessportbad +Bundesweg +Bunsengasse +Bureschgasse +Burgenlandgasse +Burgersteingasse +Burggarten +Burggasse +Burghardtgasse +Burgkmairgasse +Burgring +Burgtheater +Burjanplatz +Business Park Tower +Bussardgasse +Bussongasse +Calafattiplatz +Calvigasse +Camesinaweg +Camillianergasse +Camillo-Sitte-Gasse +Camping Neue Donau +Campingplatz Ost +Campingplatzweg +Campus-Vienna-Biocenter +Canalettogasse +Canavesegasse +Canettistraße +Canevalestraße +Canisiusgasse +Cankarstraße +Canongasse +Canovagasse +Capistrangasse +Carabelligasse +Carl-Appel-Straße +Carl-Prohaska-Platz +Carl-Reichert-Gasse +Carl-von-Linde-Straße +Carlbergergasse +Carminweg +Carolaweg +Carrogasse +Cassinonestraße +Castellezgasse +Castelligasse +Castlegasse +Cebotariweg +Celtesgasse +Ceralegasse +Cervantesgasse +Chamissogasse +Charasgasse +Charausgasse +Cherubinistraße +Chiarigasse +Chimanistraße +Chlumberggasse +Chmelgasse +Chopinhof +Chrastekgasse +Christian-Bucher-Gasse +Christian-Petzlberger-Weg +Christian-von-Arup-Gasse +Christine-Busta-Hof +Christine-Enghaus-Weg +Christinengasse +Christkindlmarkt +Christophgasse +Chrobakgasse +Chromygasse +Chrudnergasse +Churhausgasse +Chvostekgasse +Chwallagasse +Cilli-Löwinger-Weg +Cizekplatz +Claretinergasse +Clemens-Hofbauer-Platz +Clemens-Holzmeister-Straße +Clementinengasse +Clerfaytgasse +Clessgasse +Clusiusgasse +Cobdengasse +Cobenzlgasse +Coburgbastei +Colerusgasse +Collmanngasse +Colloredogasse +Columbusgasse +Columbusplatz +Comeniusgasse +Computerstraße +Concordiaplatz +Conngasse +Conrad-Lötsch-Hof +Contiweg +COOP Tower +Cooperweg +Cordobaplatz +Corneliusgasse +Cortigasse +Corvinusgasse +Cossmanngasse +Costagasse +Costenoblegasse +Cothmannstraße +Cottagebrücke +Cottagegasse +Cottagestraße +Coulombgasse +Cramolinigasse +Cranachstraße +Csardastraße +Csokorgasse +Cumberlandstraße +Curiegasse +Curlandgasse +Custozzagasse +Cuviergasse +Czapkagasse +Czartoryskigasse +Czeija-Nissl-Gasse +Czerningasse +Czerninplatz +Czibulkagasse +Czubergasse +Dachsensteig +Dachsgschleifbrücke +Dadlergasse +Dänenstraße +Dafertgasse +Daffingerstraße +Dag-Hammarskjöld-Hof +Dahliengasse +Damböckgasse +Dammäckergasse +Dammhaufen +Dammhaufengasse +Dammstraße +Dampfbadgasse +Dampfgasse +Dampfmühlgasse +Dampfschiffhaufen +Dampfschiffstraße +Dampierrestraße +Danhausergasse +Danilovatzgasse +Dankwartgasse +Dannebergplatz +Danningerweg +Danzergasse +Daphneweg +Dapontegasse +Daringergasse +Darnautgasse +Darwingasse +Dassanowskyweg +Dattlergasse +Daumegasse +Daungasse +Davidgasse +Davidhof +De-Quer-Gasse +Dechantweg +Deckergasse +Defreggerstraße +Degengasse +Dehmelgasse +Dehnegasse +Dehnepark +Deindorfstraße +Deinhardsteingasse +Deinleingasse +Deißenhofergasse +Delsenbachgasse +Delugstraße +Demeliusgasse +Demmergasse +Dempschergasse +Demuthgasse +Denglergasse +Denisgasse +Dennweg +Dermotagasse +Dernjacgasse +Desider-Friedmann-Platz +Ebendorferstraße +Ebereschengasse +Eberlgasse +Ebersberggasse +Eberstorferweg +Eberthof +Ebner-Rofenstein-Gasse +Eckartsaugasse +Eckertgasse +Eckhelgasse +Eckmüllnergasse +Eckpergasse +Economogasse +Eddagasse +Edelhofgasse +Edelsinnbrücke +Edelsinnstraße +Edelweißweg +Edenstraße +Edergasse +Edi-Finger-Straße +Edmund-Hawranek-Platz +Edmund-Reim-Gasse +Edmund-Weiß-Gasse +Eduard-Brückner-Gasse +Eduard-Gaertner-Gasse +Eduard-Hanslick-Gasse +Eduard-Jaeger-Gasse +Eduard-Kittenberger-Gasse +Eduard-Klein-Gasse +Eduard-Leisching-Hof +Eduard-Pantucek-Hof +Eduard-Pötzl-Gasse +Eduard-Reyer-Gasse +Eduard-Reyer-Steg +Eduard-Schlesinger-Hof +Eduard-Sueß-Gasse +Eduardgasse +Edwin-Schuster-Hof +Efeuweg +Fabergasse +Faberhof +Fabianistraße +Fabiganstraße +Fabriksbrücke +Fabriksgasse +Fännergasse +Fännersteg +Färbergasse +Färbermühlgasse +Fahnengasse +Fahnenweg +Fahrbachgasse +Faistauergasse +Falkestraße +Fallgasse +Fallmerayerweg +Familienplatz +Fanny-Mintz-Gasse +Faradaygasse +Farngasse +Fasangarten Siedlung +Fasangartenbrücke +Fasangartengasse +Fasangasse +Faschinggasse +Fasholdgasse +Fasslbergbrücke +Faßziehergasse +Fatinitzaweg +Faulmanngasse +Favoritenstraße +Favoritner Gewerbering +Fechtergasse +Fehlingergasse +Feilergasse +Feilplatz +Feistlgasse +Feistmantelstraße +Feistritzgasse +Franzensgasse +Franziska-Fast-Gasse +Franziskanerplatz +Franzosengraben +Franzosenweg +Frauenfelderstraße +Frauengasse +Frauenheimgasse +Frauenschuhgasse +Frauenstiftgasse +Fraungrubergasse +Fred-Liewehr-Gasse +Fred-Raymond-Gasse +Freesienweg +Freiheitsplatz +Freiheitsturm +Freihofgasse +Freiligrathplatz +Freisingergasse +Freudenau +Gaargasse +Gabelsbergergasse +Gabillongasse +Gablenzgasse +Gabor-Steiner-Weg +Gabriele-Proft-Weg +Gadnergasse +Gadnergassenbrücke +Gänsbachergasse +Gänseblümchenweg +Gänsehäufel +Gänsehäufelbrücke +Gänsehäufelgasse +Gänsehaufentraverse +Gärtnergasse +Gärtnerstraße +Gagerngasse +Gaheisgasse +Gaißmayrgasse +Galileigasse +Gallgasse +Gallhof +Gallitzinstraße +Gallmeyergasse +Galopprennbahn +Galvanigasse +Gamandergasse +Gamgasse +Ganghofergasse +Ganglbauergasse +Gansterergasse +Garbergasse +Garcia-Lorca-Hof +Gardegasse +Garelligasse +Garnisongasse +Gartenbaupromenade +Gartenfreundeweg +Gartengasse (Favoriten) +Gartengasse (Margareten) +Haarhof +Haasgasse +Habe-die-Ehre-Gasse +Haberditzlgasse +Haberergasse +Haberlandtgasse +Haberlgasse +Habichergasse +Habitzlgasse +Haböckgasse +Habsburgergasse +Hackenberg +Hackenberggasse +Hackenbergweg +Hackengasse +Hackhoferbrücke +Hackhofergasse +Hackinger Hof +Hackinger Kai +Hackinger Steg +Hackinger Straße +Hadatschgasse +Hadersbergensteig +Hadersdorfer Bad +Hadikgasse +Hadikpark +Hadiksteg +Hadrawagasse +Haebergasse +Haeckelstraße +Hägelingasse +Hämmerlegasse +Händelgasse +Hänflingweg +Haengasse +Hänischgasse +Häuserl-am-Roan-Brücke +Häuserl am Roan +Häuserl am Stoan +Immengasse +Immergrüngasse +In den Gabrissen +In den Kräutern +In den Obern Falkenbergen +In der Bien +In der goldenen Erden +In der Hagenau +In der Klausen +In der Krim +In der Wiesen +Indigoweg +Industriestraße +Ing.-Körner-Gasse +Ing.-Sarek-Weg +Inge-Konradi-Gasse +Ingeborg-Bachmann-Platz +Ingen-Housz-Gasse +Innocentiagasse +Innovationsstraße +J.-C.-Böck-Greissau-Hof +Jacobsgasse +Jacquingasse +Jadengasse +Jägerhaus +Jägerhausgasse +Jägermaisbogen +Jägermaiszufahrt +Jägerstätterstraße +Jägerstraße +Jägerweggasse +Jägerwiese +Jagdgasse +Jagdschloßgasse +Jagdschloßgasse-Steg +Jagicgasse +Jahngasse +Jakob-Gremdlinger-Straße +Jakob-König-Hof +Jakob-Puggl-Weg +Jiricekgasse +Joachim-Schettl-Gasse +Joachimsthalerplatz +Joanelligasse +Jochbergengasse +Jochen-Rindt-Straße +Jodlgasse +Jodok-Fink-Platz +Jöchlingergrund +Jörgerbad +Jörgerbadgasse +Jörgerstraße +Jörsgasse +Johann-Blobner-Gasse +Johann-Böhm-Platz +Johann-Böhm-Wohnhausanlage +Johann-Dunkl-Gasse +Johann-Friedl-Gasse +Johann-Friedl-Steg +Johann-Gottek-Gasse +Laaer-Berg-Straße +Laaer-Wald-Straße +Laaer Berg +Laaer Wald +Laaerbergbad +Laaerbergtunnel +Labanweg +Laberlsteg +Laberlweg +Labersteig +Laborweg +Lachsweg +Lackenjöchelgasse +Lackierergasse +Lacknergasse +Ladenburghöhe +Längenfeldgasse +Lafitegasse +Lafnitzgasse +Lagergasse +Laurentiusplatz +Laurenz-Barchetti-Gasse +Laurenzer Brücke +Laurenzerberg +Laurenzgasse +Lautensackgasse +Lautenschlägergasse +Lavantgasse +Lavaterstraße +Lavendelweg +Laverangasse +Laxenburger Brücke +Laxenburger Straße +Layerweg +Lazarettgasse +Lazargasse +Lazaristengasse +Lazarsfeldgasse +Lazenhof +Laziusstraße +Kaasgrabengasse +Kabastagasse +Kärchergasse +Kärntner Durchgang +Kärntner Ring +Kärntner Straße +Kärntnertorpassage +Käsmayergasse +Kästenbaumgasse +Käthe-Jonas-Weg +Käthe-Königstetter-Hof +Käthe-Leichter-Gasse +Kafkasteg +Kafkastraße +Kaftangasse +Kagran +Kagraner Anger +Kagraner Brücke +Kagraner Friedhof +Kagraner Platz +Karczaggasse +Kardinal-Innitzer-Platz +Kardinal-König-Platz +Kardinal-Nagl-Platz +Kardinal-Piffl-Gasse +Kardinal-Rauscher-Platz +Kargergasse +Karl-Aschenbrenner-Gasse +Karl-Beck-Gasse +Karl-Bednarik-Gasse +Karl-Bekehrty-Straße +Karl-Benz-Weg +Karl-Borromäus-Platz +Karl-Czernetz-Hof +Karl-Czerny-Gasse +Karl-Diener-Gasse +Karl-Drescher-Gasse +Karl-Farkas-Gasse +Karl-Föderl-Hof +Karl-Frey-Hof +Maargasse +Machegasse +Macholdastraße +Machstraße +Mackgasse +Maculangasse +Maderspergerstraße +Maderstraße +Madjeragasse +Mälzelplatz +Männertreugasse +Märzpark +Märzstraße +Märzstraßenbrücke +Magazingasse +Magdalenenstraße +Magdeburgstraße +Magnoliengasse +Magyarweg +Mahlerstraße +Maria-Jacobi-Gasse +Maria-Kuhn-Gasse +Maria-Rekker-Gasse +Maria-Restituta-Hof +Maria-Restituta-Platz +Maria-Theresia-Brücke +Maria-Theresien-Schlössel +Maria-Theresien-Straße +Maria-Treu-Gasse +Maria-und-Rudolf-Fischer-Hof +Maria vom Siege +Mariabrunner Straße +Mariahilfer Gürtel +Mariahilfer Straße +Marianne-Hainisch-Gasse +Marianne-Hainisch-Hof +Marianne-und-Oskar-Pollak-Hof +Mariannengasse +Marie-Jahoda-Gasse +Marie-Jahoda-Schule +Naaffgasse +Nabuccogasse +Nachreihengasse +Nachtigallenweg +Nachtnebelweg +Naderstraße +Nadlergasse +Nästlbergergasse +Naglergasse +Napoleons Schanze +Napoleonwaldgasse +Naschmarkt +Natorpgasse +Nattergasse +Naufahrtweg +Nauheimerbrücke +Nauheimergasse +Nauschgasse +Nauseagasse +Neblingergasse +Nevillegasse +Newaldgasse +Nibelungengasse +Nickelgasse +Niederauergasse +Niederhofstraße +Niedermeierweg +Niedermoserstraße +Niederpointenstraße +Niederreiterberggasse +Nielrosenweg +Niernbergergasse +Nietzscheplatz +Nikischgasse +Niklas-Eslarn-Straße +Nikolaibrücke +Nikolaigasse +Nikolaihangbrücke +Nikolaihochstraße +Nikolaisteg +Obachgasse +Obelixturm +Ober-Laa Frachtenbahnhof +Ober-Laaer Friedhof +Ober-Laaer Platz +Ober den Gärten +Ober Sankt Veiter Friedhof +Oberdorfstraße +Obere Amtshausgasse +Obere Aquäduktgasse +Obere Augartenstraße +Obere Bahngasse +Obere Donaustraße +Obere Grenzgasse +Obere Jungenberggasse +Obere Ried +Obere Viaduktgasse +Obere Weißgerberstraße +Oberer Dehneparksteg +Oberer Kinderheimsteg +Orchideenweg +Orchisgasse +Ordengasse +Orelgasse +Oriongasse +Orthopädisches Spital +Ortliebgasse +Ortnergasse +Osergasse +Oskar-Czeija-Gasse +Oskar-Grissemann-Straße +Oskar-Helmer-Hof +Oskar-Jascha-Gasse +Oskar-Kokoschka-Platz +Oskar-Simony-Straße +Oskar-Spiel-Gasse +Oskar-Werner-Hof +Ospelgasse +Ostbahn +Ostbahnbegleitstraße +Pablo-Neruda-Hof +Pacassistraße +Pachmanngasse +Pachmayergasse +Pachmüllergasse +Pachtweg +Packesgasse +Paffrathgasse +Paletzgasse +Palffygasse +Palisagasse +Pallenbergstraße +Palmaygasse +Palmgasse +Paltaufgasse +Paltramplatz +Paminagasse +Panethgasse +Paniglgasse +Panikengasse +Pelargonienweg +Pelikangasse +Pellmannbrücke +Pellmanngasse +Pelzgasse +Penkgasse +Pensionsgasse +Penzing Frachtenbahnhof +Penzinger Friedhof +Penzinger Straße +Per-Albin-Hansson-Straße +Perchtoldsdorfer Straße +Percostraße +Peregringasse +Perfektastraße +Perinetgasse +Pernerstorfergasse +Pernerstorferhof +Pernerstorfersteg +Perntergasse +Quadenstraße +Quaringasse +Quarinhof +Quarzweg +Quellenplatz +Quellenstraße +Quellenweg +Quittenweg +R.-Platzer-Hof +Raaber-Bahn-Gasse +Raabweg +Rabbiner-Schneerson-Platz +Rabengasse +Rabenhof +Rabensburger Straße +Rabensteig +Rabnitzweg +Radeckgasse +Radelmayergasse +Radetzkybrücke +Radetzkyplatz +Radetzkystraße +Radingerstraße +Radnitzkygasse +Radwegbrücke Hammerschmiedgraben +Radwegbrücke Krottenbach +Rädda-Barnen-Platz +Rädtnergasse +Reindorfgasse +Reinholdgasse +Reiningerweg +Reinischgasse +Reinlgasse +Reinprechtsdorfer Brücke +Reinprechtsdorfer Straße +Reisberggasse +Reischachstraße +Reischekgasse +Reischergasse +Reisenbergbachsteg +Reisgasse +Reisingergasse +Reismannhof +Reisnerstraße +Reiterberggasse +Reithlegasse +Reithofferpark +Reithofferplatz +S2-Wiener Nordrand Straße +Saarplatz +Sachsenplatz +Sackgasse +Sängergasse +Säulengasse +Safargasse +Sagedergasse +Sahulkastraße +Saikogasse +Saileräckergasse +Sailergrabenbrücke +Salamandergasse +Salbeigasse +Salesianergasse +Salierigasse +Saligergasse +Salisstraße +Salmannsdorfer Höhe +Salmannsdorfer Straße +Taborstraße +Taggergasse +Taglieberstraße +Talgasse +Talkengasse +Tallesbrunngasse +Tallesbrunngassenbrücke +Talpagasse +Tamariskengasse +Taminoweg +Tanbruckgasse +Tandelmarktgasse +Tannengasse +Tannhäuserplatz +Tartergasse +Taubergasse +Taubnesselweg +Taubstummengasse +Tauschekgasse +Tauschinskygasse +Tigerpark +Tilakstraße +Tilgnergasse +Tilgnerstraße +Tillmanngasse +Tina-Blau-Weg +Tinterstraße +Tiroler Gasse +Titlgasse +Tivoligasse +Töllergasse +Töpfelgasse +Toeplerhof +Tokiostraße +Toldgasse +Tolstojgasse +Tomaschekstraße +Tomschikgasse +Tonfabrikgasse +Tongasse +Uhlplatz +Uhugasse +Ulanenweg +Ullmannstraße +Ullreichgasse +Ulmenhof +Ulmenstraße +Ulrichgasse +Ultzmanngasse +Umlauftgasse +Unbenannte Verkehrsfläche +Underreingasse +Undsetgasse +Ungargasse +Ungerhof +Uniqa Tower +Universitätsstraße +Universumstraße +Unter-Laa +Unter-Laaer Straße +Valentingasse +Van-der-Nüll-Gasse +Van-Swieten-Gasse +Varnhagengasse +Varronegasse +Vegagasse +Veilchenweg +Veithgasse +Veitingergasse +Veitlissengasse +Veitschiweg +Veltzegasse +Venediger Au +Venusweg +Vera-Schwarz-Gasse +Verbandsweg +Verbindungsweg (Floridsdorf) +Verbindungsweg (Hernals) +Vereinsgasse +Vereinsstiege +Vivaldigasse +Vivariumstraße +Vivenotgasse +Vizanigasse +Vöschergasse +Vösendorfer Straße +Vogelbeerengasse +Vogelsanggasse +Vogeltenngasse +Vogeltennwiese +Vogelweidhof +Vogelweidplatz +Vogentalgasse +Voglgasse +Vogtgasse +Vohburggasse +Voigtländergasse +Voitgasse +Volkergasse +Volkertmarkt +Waaggasse +Wachauer Hof +Wachaustraße +Wacholderweg +Wachsstöcklbrücke +Wachtelweg +Wackenroderbrücke +Wacquantgasse +Wächtergasse +Währinger Gürtel +Währinger Park +Währinger Straße +Wällischgasse +Wagenmanngasse +Wagenseilgasse +Wagner-Jauregg-Hof +Wagner-Jauregg-Weg +Wagner-Schönkirch-Gasse +Wagramer Straße +Wahlberggasse +Ybbsstraße +Yppengasse +Yppenplatz +Zachgasse +Zagorskigasse +Zahnradbahnstraße +Zallingergasse +Zamaragasse +Zamenhofgasse +Zampisgasse +Zanaschkagasse +Zangerlestraße +Zanggasse +Zaunergasse +Zaunscherbgasse +Zaunscherbgrund +Zdarskyweg +Zedlitzgasse +Zedlitzsteg +Zehdengasse +Zehenthofgasse +Zehetbauergasse +Zehetnergasse \ No newline at end of file diff --git a/lib/FastInfoset-1.2.15-javadoc.jar b/lib/FastInfoset-1.2.15-javadoc.jar new file mode 100644 index 0000000..46cdbd3 Binary files /dev/null and b/lib/FastInfoset-1.2.15-javadoc.jar differ diff --git a/lib/FastInfoset-1.2.15.jar b/lib/FastInfoset-1.2.15.jar new file mode 100644 index 0000000..2671209 Binary files /dev/null and b/lib/FastInfoset-1.2.15.jar differ diff --git a/lib/animal-sniffer-annotations-1.17-javadoc.jar b/lib/animal-sniffer-annotations-1.17-javadoc.jar new file mode 100644 index 0000000..27f74ca Binary files /dev/null and b/lib/animal-sniffer-annotations-1.17-javadoc.jar differ diff --git a/lib/animal-sniffer-annotations-1.17.jar b/lib/animal-sniffer-annotations-1.17.jar new file mode 100644 index 0000000..6ec7a60 Binary files /dev/null and b/lib/animal-sniffer-annotations-1.17.jar differ diff --git a/lib/asm-9.2-javadoc.jar b/lib/asm-9.2-javadoc.jar new file mode 100644 index 0000000..87d321a Binary files /dev/null and b/lib/asm-9.2-javadoc.jar differ diff --git a/lib/asm-9.2.jar b/lib/asm-9.2.jar new file mode 100644 index 0000000..3557ae4 Binary files /dev/null and b/lib/asm-9.2.jar differ diff --git a/lib/asm-analysis-9.2-javadoc.jar b/lib/asm-analysis-9.2-javadoc.jar new file mode 100644 index 0000000..8aebf6d Binary files /dev/null and b/lib/asm-analysis-9.2-javadoc.jar differ diff --git a/lib/asm-analysis-9.2.jar b/lib/asm-analysis-9.2.jar new file mode 100644 index 0000000..9d575ca Binary files /dev/null and b/lib/asm-analysis-9.2.jar differ diff --git a/lib/asm-commons-9.2-javadoc.jar b/lib/asm-commons-9.2-javadoc.jar new file mode 100644 index 0000000..cba0590 Binary files /dev/null and b/lib/asm-commons-9.2-javadoc.jar differ diff --git a/lib/asm-commons-9.2.jar b/lib/asm-commons-9.2.jar new file mode 100644 index 0000000..01028a0 Binary files /dev/null and b/lib/asm-commons-9.2.jar differ diff --git a/lib/asm-tree-9.2-javadoc.jar b/lib/asm-tree-9.2-javadoc.jar new file mode 100644 index 0000000..b9baae8 Binary files /dev/null and b/lib/asm-tree-9.2-javadoc.jar differ diff --git a/lib/asm-tree-9.2.jar b/lib/asm-tree-9.2.jar new file mode 100644 index 0000000..0a6833a Binary files /dev/null and b/lib/asm-tree-9.2.jar differ diff --git a/lib/asm-util-9.2-javadoc.jar b/lib/asm-util-9.2-javadoc.jar new file mode 100644 index 0000000..c858099 Binary files /dev/null and b/lib/asm-util-9.2-javadoc.jar differ diff --git a/lib/asm-util-9.2.jar b/lib/asm-util-9.2.jar new file mode 100644 index 0000000..3afe6e6 Binary files /dev/null and b/lib/asm-util-9.2.jar differ diff --git a/lib/axml-2.1.2-javadoc.jar b/lib/axml-2.1.2-javadoc.jar new file mode 100644 index 0000000..e750602 Binary files /dev/null and b/lib/axml-2.1.2-javadoc.jar differ diff --git a/lib/axml-2.1.2.jar b/lib/axml-2.1.2.jar new file mode 100644 index 0000000..b9e1014 Binary files /dev/null and b/lib/axml-2.1.2.jar differ diff --git a/lib/checker-compat-qual-2.5.2-javadoc.jar b/lib/checker-compat-qual-2.5.2-javadoc.jar new file mode 100644 index 0000000..54bb1e4 Binary files /dev/null and b/lib/checker-compat-qual-2.5.2-javadoc.jar differ diff --git a/lib/checker-compat-qual-2.5.2.jar b/lib/checker-compat-qual-2.5.2.jar new file mode 100644 index 0000000..633d2c2 Binary files /dev/null and b/lib/checker-compat-qual-2.5.2.jar differ diff --git a/lib/commons-io-2.7-javadoc.jar b/lib/commons-io-2.7-javadoc.jar new file mode 100644 index 0000000..2e2b1e0 Binary files /dev/null and b/lib/commons-io-2.7-javadoc.jar differ diff --git a/lib/commons-io-2.7.jar b/lib/commons-io-2.7.jar new file mode 100644 index 0000000..5889458 Binary files /dev/null and b/lib/commons-io-2.7.jar differ diff --git a/lib/dexlib2-2.5.2-javadoc.jar b/lib/dexlib2-2.5.2-javadoc.jar new file mode 100644 index 0000000..3e04372 Binary files /dev/null and b/lib/dexlib2-2.5.2-javadoc.jar differ diff --git a/lib/dexlib2-2.5.2.jar b/lib/dexlib2-2.5.2.jar new file mode 100644 index 0000000..392b3fc Binary files /dev/null and b/lib/dexlib2-2.5.2.jar differ diff --git a/lib/error_prone_annotations-2.2.0-javadoc.jar b/lib/error_prone_annotations-2.2.0-javadoc.jar new file mode 100644 index 0000000..f12432b Binary files /dev/null and b/lib/error_prone_annotations-2.2.0-javadoc.jar differ diff --git a/lib/error_prone_annotations-2.2.0.jar b/lib/error_prone_annotations-2.2.0.jar new file mode 100644 index 0000000..c8e27b5 Binary files /dev/null and b/lib/error_prone_annotations-2.2.0.jar differ diff --git a/lib/failureaccess-1.0.1-javadoc.jar b/lib/failureaccess-1.0.1-javadoc.jar new file mode 100644 index 0000000..39bb3d4 Binary files /dev/null and b/lib/failureaccess-1.0.1-javadoc.jar differ diff --git a/lib/failureaccess-1.0.1.jar b/lib/failureaccess-1.0.1.jar new file mode 100644 index 0000000..9b56dc7 Binary files /dev/null and b/lib/failureaccess-1.0.1.jar differ diff --git a/lib/functionaljava-4.2-javadoc.jar b/lib/functionaljava-4.2-javadoc.jar new file mode 100644 index 0000000..17dec14 Binary files /dev/null and b/lib/functionaljava-4.2-javadoc.jar differ diff --git a/lib/functionaljava-4.2.jar b/lib/functionaljava-4.2.jar new file mode 100644 index 0000000..8aa667d Binary files /dev/null and b/lib/functionaljava-4.2.jar differ diff --git a/lib/guava-27.1-android-javadoc.jar b/lib/guava-27.1-android-javadoc.jar new file mode 100644 index 0000000..16abcc8 Binary files /dev/null and b/lib/guava-27.1-android-javadoc.jar differ diff --git a/lib/guava-27.1-android.jar b/lib/guava-27.1-android.jar new file mode 100644 index 0000000..8648a60 Binary files /dev/null and b/lib/guava-27.1-android.jar differ diff --git a/lib/heros-1.2.3-javadoc.jar b/lib/heros-1.2.3-javadoc.jar new file mode 100644 index 0000000..d70e6fe Binary files /dev/null and b/lib/heros-1.2.3-javadoc.jar differ diff --git a/lib/heros-1.2.3.jar b/lib/heros-1.2.3.jar new file mode 100644 index 0000000..7a99325 Binary files /dev/null and b/lib/heros-1.2.3.jar differ diff --git a/lib/istack-commons-runtime-3.0.7-javadoc.jar b/lib/istack-commons-runtime-3.0.7-javadoc.jar new file mode 100644 index 0000000..d4f703e Binary files /dev/null and b/lib/istack-commons-runtime-3.0.7-javadoc.jar differ diff --git a/lib/istack-commons-runtime-3.0.7.jar b/lib/istack-commons-runtime-3.0.7.jar new file mode 100644 index 0000000..2fe5b82 Binary files /dev/null and b/lib/istack-commons-runtime-3.0.7.jar differ diff --git a/lib/j2objc-annotations-1.1-javadoc.jar b/lib/j2objc-annotations-1.1-javadoc.jar new file mode 100644 index 0000000..a7c633d Binary files /dev/null and b/lib/j2objc-annotations-1.1-javadoc.jar differ diff --git a/lib/j2objc-annotations-1.1.jar b/lib/j2objc-annotations-1.1.jar new file mode 100644 index 0000000..4b6f127 Binary files /dev/null and b/lib/j2objc-annotations-1.1.jar differ diff --git a/lib/jasmin-3.0.3-javadoc.jar b/lib/jasmin-3.0.3-javadoc.jar new file mode 100644 index 0000000..b527eff Binary files /dev/null and b/lib/jasmin-3.0.3-javadoc.jar differ diff --git a/lib/jasmin-3.0.3.jar b/lib/jasmin-3.0.3.jar new file mode 100644 index 0000000..54c07e0 Binary files /dev/null and b/lib/jasmin-3.0.3.jar differ diff --git a/lib/java_cup-0.9.2-javadoc.jar b/lib/java_cup-0.9.2-javadoc.jar new file mode 100644 index 0000000..d5ec29b Binary files /dev/null and b/lib/java_cup-0.9.2-javadoc.jar differ diff --git a/lib/java_cup-0.9.2.jar b/lib/java_cup-0.9.2.jar new file mode 100644 index 0000000..66217a8 Binary files /dev/null and b/lib/java_cup-0.9.2.jar differ diff --git a/lib/javax.activation-api-1.2.0-javadoc.jar b/lib/javax.activation-api-1.2.0-javadoc.jar new file mode 100644 index 0000000..cc6c3c4 Binary files /dev/null and b/lib/javax.activation-api-1.2.0-javadoc.jar differ diff --git a/lib/javax.activation-api-1.2.0.jar b/lib/javax.activation-api-1.2.0.jar new file mode 100644 index 0000000..986c365 Binary files /dev/null and b/lib/javax.activation-api-1.2.0.jar differ diff --git a/lib/javax.annotation-api-1.3.2-javadoc.jar b/lib/javax.annotation-api-1.3.2-javadoc.jar new file mode 100644 index 0000000..7461923 Binary files /dev/null and b/lib/javax.annotation-api-1.3.2-javadoc.jar differ diff --git a/lib/javax.annotation-api-1.3.2.jar b/lib/javax.annotation-api-1.3.2.jar new file mode 100644 index 0000000..a8a470a Binary files /dev/null and b/lib/javax.annotation-api-1.3.2.jar differ diff --git a/lib/jaxb-api-2.4.0-b180725.0427-javadoc.jar b/lib/jaxb-api-2.4.0-b180725.0427-javadoc.jar new file mode 100644 index 0000000..0d77c93 Binary files /dev/null and b/lib/jaxb-api-2.4.0-b180725.0427-javadoc.jar differ diff --git a/lib/jaxb-api-2.4.0-b180725.0427.jar b/lib/jaxb-api-2.4.0-b180725.0427.jar new file mode 100644 index 0000000..5dea8fe Binary files /dev/null and b/lib/jaxb-api-2.4.0-b180725.0427.jar differ diff --git a/lib/jaxb-runtime-2.4.0-b180830.0438-javadoc.jar b/lib/jaxb-runtime-2.4.0-b180830.0438-javadoc.jar new file mode 100644 index 0000000..1c1b556 Binary files /dev/null and b/lib/jaxb-runtime-2.4.0-b180830.0438-javadoc.jar differ diff --git a/lib/jaxb-runtime-2.4.0-b180830.0438.jar b/lib/jaxb-runtime-2.4.0-b180830.0438.jar new file mode 100644 index 0000000..b5194f6 Binary files /dev/null and b/lib/jaxb-runtime-2.4.0-b180830.0438.jar differ diff --git a/lib/jsr305-3.0.2-javadoc.jar b/lib/jsr305-3.0.2-javadoc.jar new file mode 100644 index 0000000..defc108 Binary files /dev/null and b/lib/jsr305-3.0.2-javadoc.jar differ diff --git a/lib/jsr305-3.0.2.jar b/lib/jsr305-3.0.2.jar new file mode 100644 index 0000000..59222d9 Binary files /dev/null and b/lib/jsr305-3.0.2.jar differ diff --git a/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar new file mode 100644 index 0000000..45832c0 Binary files /dev/null and b/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar differ diff --git a/lib/polyglot-2006-javadoc.jar b/lib/polyglot-2006-javadoc.jar new file mode 100644 index 0000000..d5ec29b Binary files /dev/null and b/lib/polyglot-2006-javadoc.jar differ diff --git a/lib/polyglot-2006.jar b/lib/polyglot-2006.jar new file mode 100644 index 0000000..1b9a05d Binary files /dev/null and b/lib/polyglot-2006.jar differ diff --git a/lib/slf4j-api-1.7.32-javadoc.jar b/lib/slf4j-api-1.7.32-javadoc.jar new file mode 100644 index 0000000..258dc48 Binary files /dev/null and b/lib/slf4j-api-1.7.32-javadoc.jar differ diff --git a/lib/slf4j-api-1.7.32.jar b/lib/slf4j-api-1.7.32.jar new file mode 100644 index 0000000..b16a078 Binary files /dev/null and b/lib/slf4j-api-1.7.32.jar differ diff --git a/lib/soot-4.3.0-javadoc.jar b/lib/soot-4.3.0-javadoc.jar new file mode 100644 index 0000000..93e30db Binary files /dev/null and b/lib/soot-4.3.0-javadoc.jar differ diff --git a/lib/soot-4.3.0.jar b/lib/soot-4.3.0.jar new file mode 100644 index 0000000..40b2ac6 Binary files /dev/null and b/lib/soot-4.3.0.jar differ diff --git a/lib/stax-ex-1.8-javadoc.jar b/lib/stax-ex-1.8-javadoc.jar new file mode 100644 index 0000000..b701a79 Binary files /dev/null and b/lib/stax-ex-1.8-javadoc.jar differ diff --git a/lib/stax-ex-1.8.jar b/lib/stax-ex-1.8.jar new file mode 100644 index 0000000..5e60637 Binary files /dev/null and b/lib/stax-ex-1.8.jar differ diff --git a/lib/txw2-2.4.0-b180830.0438-javadoc.jar b/lib/txw2-2.4.0-b180830.0438-javadoc.jar new file mode 100644 index 0000000..bf15047 Binary files /dev/null and b/lib/txw2-2.4.0-b180830.0438-javadoc.jar differ diff --git a/lib/txw2-2.4.0-b180830.0438.jar b/lib/txw2-2.4.0-b180830.0438.jar new file mode 100644 index 0000000..b7ddeaa Binary files /dev/null and b/lib/txw2-2.4.0-b180830.0438.jar differ diff --git a/lib/xmlpull-1.1.3.4d_b4_min.jar b/lib/xmlpull-1.1.3.4d_b4_min.jar new file mode 100644 index 0000000..43486c2 Binary files /dev/null and b/lib/xmlpull-1.1.3.4d_b4_min.jar differ diff --git a/noEasyDB.iml b/noEasyDB.iml new file mode 100644 index 0000000..0497db1 --- /dev/null +++ b/noEasyDB.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file