Example usage for javafx.collections ObservableList get

List of usage examples for javafx.collections ObservableList get

Introduction

In this page you can find the example usage for javafx.collections ObservableList get.

Prototype

E get(int index);

Source Link

Document

Returns the element at the specified position in this list.

Usage

From source file:com.saiton.ccs.validations.FormatAndValidate.java

public boolean isValidUniqueTelephoneNumber(ListView listView, String telephone) {
    boolean valid = true;

    String telephoneNumber = telephone.trim();
    ObservableList<String> list = listView.getItems();

    String regex_Number = "([0-9])*"; //Regex pattern for Single Name with initials.

    Pattern pattern_Number = Pattern.compile(regex_Number); //    Pattern Compliler

    Matcher matcher_Number = pattern_Number.matcher(telephoneNumber); // Pattern Matcher where the Single Name argument is checked with the given pattern

    boolean matched_Number = matcher_Number.matches(); // Result of the matcher is returned as a boolean for Single Name

    if (matched_Number == true && telephoneNumber.length() < 14 && telephoneNumber.length() > 9) {

        if (list.size() != 0 && !telephone.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {

                if (list.get(i).equals(telephone)) {
                    valid = false;//from  ww  w.j  a  va2 s  .  c o m

                }
                //                    else {
                //
                //                        valid = false;
                //
                //                    }
            }
        } else if (list.size() == 0) {
            valid = true;
        }

    } else {

        valid = false;
    }

    return valid;

}

From source file:aajavafx.Schedule1Controller.java

public ObservableList<CustomerProperty> getUnsignedCustomers() throws IOException, JSONException {
    //Customers customers = new Customers();
    EmployeeSchedule mySchedule = new EmployeeSchedule();
    singleton = Singleton.getInstance();
    Gson gson = new Gson();

    ObservableList<CustomerProperty> customerPropertyCustomersSigned = FXCollections.observableArrayList();
    ObservableList<CustomerProperty> customerPropertyAllCustomers = this.getCustomer();
    JSONObject jo = new JSONObject();

    CredentialsProvider provider = new BasicCredentialsProvider();
    UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("EMPLOYEE", "password");
    provider.setCredentials(AuthScope.ANY, credentials);
    HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
    HttpGet get = new HttpGet("http://localhost:8080/MainServerREST/api/employeeschedule/date/" + getDate());
    HttpResponse response = client.execute(get);
    System.out.println("RESPONSE IS: " + response);

    JSONArray jsonArray = new JSONArray(
            IOUtils.toString(response.getEntity().getContent(), Charset.forName("UTF-8")));
    System.out.println("1 " + jsonArray);

    for (int i = 0; i < jsonArray.length(); i++) {
        jo = (JSONObject) jsonArray.getJSONObject(i);

        mySchedule = gson.fromJson(jo.toString(), EmployeeSchedule.class);

        customerPropertyCustomersSigned.add(new CustomerProperty(mySchedule.getCustomersCuId().getCuId(),
                mySchedule.getCustomersCuId().getCuFirstname(), mySchedule.getCustomersCuId().getCuLastname(),
                mySchedule.getCustomersCuId().getCuPersonnummer()));

    }//w w w. j  a v a 2  s  .co  m

    for (int i = 0; i < customerPropertyAllCustomers.size(); i++) {

        for (int j = 0; j < customerPropertyCustomersSigned.size(); j++) {

            if (customerPropertyAllCustomers.get(i).getPersonnumer()
                    .equals(customerPropertyCustomersSigned.get(j).getPersonnumer())) {

                customerPropertyAllCustomers.remove(i);
            }
        }
    }

    singleton.setList(customerPropertyAllCustomers);
    return customerPropertyAllCustomers;
}

From source file:com.github.naoghuman.testdata.abclist.service.ExerciseService.java

@Override
protected Task<Void> createTask() {
    return new Task<Void>() {
        {/*from w  ww  . jav a 2 s  .c  o m*/
            updateProgress(0, saveMaxEntities);
        }

        @Override
        protected Void call() throws Exception {
            LoggerFacade.getDefault().deactivate(Boolean.TRUE);

            final StopWatch stopWatch = new StopWatch();
            stopWatch.start();

            final ObservableList<Topic> topics = SqlProvider.getDefault().findAllTopics();
            final int removeMaxTopics = (int) (Double.parseDouble(String.valueOf(topics.size())) * 0.001d);
            for (int counter = removeMaxTopics; counter > 0; counter--) {
                topics.remove(TestdataGenerator.RANDOM.nextInt(topics.size()));
            }
            final int sizeTopics = topics.size();

            final CrudService crudService = DatabaseFacade.getDefault().getCrudService(entityName);
            final ETime[] times = ETime.values();
            final int sizeTimes = times.length;
            long id = -1_000_000_000L + DatabaseFacade.getDefault().getCrudService().count(entityName);
            for (int index = 0; index < saveMaxEntities; index++) {
                final Exercise exercise = ModelProvider.getDefault().getExercise();
                exercise.setChoosenTime((times[TestdataGenerator.RANDOM.nextInt(sizeTimes)]).toString());
                exercise.setConsolidated(false); // TODO later ?
                exercise.setFinishedTime(ExerciseService.this.createGenerationTime());
                exercise.setGenerationTime(ExerciseService.this.createGenerationTime());
                if (exercise.getGenerationTime() > exercise.getFinishedTime()) {
                    final long generationTime = exercise.getGenerationTime();
                    final long finishedTime = exercise.getFinishedTime();
                    exercise.setGenerationTime(finishedTime);
                    exercise.setFinishedTime(generationTime);
                }
                exercise.setId(id++);
                exercise.setReady(TestdataGenerator.RANDOM.nextDouble() > 0.001d); // TODO if ready then add terms

                final long topicId = topics.get(TestdataGenerator.RANDOM.nextInt(sizeTopics)).getId();
                exercise.setTopicId(topicId);

                crudService.create(exercise);
                updateProgress(index, saveMaxEntities);
            }

            LoggerFacade.getDefault().deactivate(Boolean.FALSE);
            stopWatch.split();
            LoggerFacade.getDefault().debug(this.getClass(),
                    "  + " + stopWatch.toSplitString() + " for " + saveMaxEntities + " Exercises."); // NOI18N
            stopWatch.stop();

            return null;
        }
    };
}

From source file:org.beryx.viewreka.fxapp.Viewreka.java

public void openFile(File file) {
    if (file != null && file.isFile()) {
        String filePath = file.getAbsolutePath();
        ObservableList<Tab> tabs = projectTabPane.getTabs();
        if (project != null) {
            if (file.toURI().normalize().equals(project.getScriptUri().normalize())) {
                menuTabBindingSourceCode.showTab();
                return;
            }//from  w  ww . j av a2 s.  co  m
            ProjectSettings projectSettings = project.getProjectSettingsManager().getSettings();
            List<String> openFiles = getOpenFiles(projectSettings);
            int index = openFiles.indexOf(filePath);
            if (index >= 0) {
                if (index >= tabs.size()) {
                    Dialogs.error("Open File error",
                            "Internal error: invalid index (" + index + ") for already open file.");
                } else {
                    Tab tab = tabs.get(index);
                    if (!filePath.equals(getData(tab).getFilePath())) {
                        Dialogs.error("Open File error",
                                "Internal error: already open file not found at the expected index " + index
                                        + ".");
                    } else {
                        projectTabPane.getSelectionModel().select(index);
                    }
                }
                return;
            }
        }
        if (file.length() > MAX_TEXT_FILE_LENGTH) {
            Dialogs.error("Open File error", "File too big (" + file.length() + " bytes).");
            return;
        }
        if (isProbablyBinary(file)) {
            if (!Dialogs.confirmYesNo("Open File", "This seems to be a binary file.",
                    "Are you sure you want to open this file?")) {
                return;
            }
        }
        try {
            CodeAreaTab codeAreaTab = CodeAreaTab.fromFile(file);
            tabs.add(codeAreaTab);
            projectTabPane.getSelectionModel().select(codeAreaTab);

            if (project != null) {
                ProjectSettings projectSettings = project.getProjectSettingsManager().getSettings();
                List<String> openFiles = getOpenFiles(projectSettings);
                openFiles.add(filePath);
                codeAreaTab.setOnCloseRequest(ev -> {
                    if (!tryClose(codeAreaTab))
                        ev.consume();
                });
            }
        } catch (IOException e) {
            Dialogs.error("Open File error", "Cannot open file '" + filePath + "'", e);
            return;
        }
    }
}

From source file:de.bayern.gdi.gui.Controller.java

/**
 * Sets the Service Types.//from  ww w.  ja va 2 s .co m
 */
public void setServiceTypes() {
    if (dataBean.isWebServiceSet()) {
        switch (dataBean.getServiceType()) {
        case WFS_ONE:
        case WFS_TWO:
            boolean isWfs2 = WFS_TWO.equals(dataBean.getServiceType());
            ObservableList<ItemModel> types = collectServiceTypes(isWfs2);
            addStoredQueries(types);
            serviceTypeChooser.getItems().retainAll();
            serviceTypeChooser.setItems(types);
            serviceTypeChooser.setValue(types.get(0));
            chooseType(serviceTypeChooser.getValue());
            break;
        case ATOM:
            List<Atom.Item> items = dataBean.getAtomService().getItems();
            ObservableList<ItemModel> opts = FXCollections.observableArrayList();
            List<FeaturePolygon> polygonList = new ArrayList<>();
            //Polygons are always epsg:4326
            // (http://www.georss.org/gml.html)
            try {
                ReferencedEnvelope extendATOM = null;
                CoordinateReferenceSystem atomCRS = CRS.decode(ATOM_CRS_STRING);
                Geometry all = null;
                for (Atom.Item i : items) {
                    opts.add(new AtomItemModel(i));
                    FeaturePolygon polygon = new FeaturePolygon(i.getPolygon(), i.getTitle(), i.getID(),
                            atomCRS);
                    polygonList.add(polygon);
                    all = all == null ? i.getPolygon() : all.union(i.getPolygon());
                }
                if (wmsAtomMapHandler != null) {
                    if (all != null) {
                        extendATOM = new ReferencedEnvelope(all.getEnvelopeInternal(), atomCRS);
                        wmsAtomMapHandler.setExtend(extendATOM);
                    }
                    wmsAtomMapHandler.drawPolygons(polygonList);
                }
            } catch (FactoryException e) {
                log.error(e.getMessage(), e);
            }
            serviceTypeChooser.getItems().retainAll();
            serviceTypeChooser.setItems(opts);
            if (!opts.isEmpty()) {
                serviceTypeChooser.setValue(opts.get(0));
                chooseType(serviceTypeChooser.getValue());
            }
            break;
        default:
        }
    }
}

From source file:org.beryx.viewreka.fxapp.Viewreka.java

private void updateProjectTabs(ProjectSettings projectSettings) {

    if (selectedIndexListener != null) {
        projectTabPane.getSelectionModel().selectedIndexProperty().removeListener(selectedIndexListener);
    }//from   w w w  . j  a va  2  s. com

    menuTabBindingSourceCode.setSettings(projectSettings, true);
    menuTabBindingHelp.setSettings(projectSettings, false);

    if (projectSettings != null) {
        selectedIndexListener = (obs, oldValue, newValue) -> projectSettings
                .setProperty(PROP_SELECTED_TAB_INDEX, newValue);
        projectTabPane.getSelectionModel().selectedIndexProperty().addListener(selectedIndexListener);

        selectedItemListener = (obs, oldTab, newTab) -> {
            butSaveFile.disableProperty().unbind();
            mnuSaveFile.disableProperty().unbind();
            butSaveFile.setDisable(true);
            mnuSaveFile.setDisable(true);
            if (newTab != null) {
                CodeTabData tabData = getData(newTab);
                Platform.runLater(() -> {
                    BooleanBinding scriptChangedBinding = Bindings.createBooleanBinding(
                            () -> !tabData.isDirty(), tabData.getTextProperty(),
                            tabData.getInitialTextProperty());
                    butSaveFile.disableProperty().bind(scriptChangedBinding);
                    mnuSaveFile.disableProperty().bind(scriptChangedBinding);

                    StringBinding tabTextBinding = Bindings.createStringBinding(() -> {
                        String text = tabData.getTabText();
                        if (tabData.isDirty()) {
                            text = "*" + text;
                        }
                        return text;
                    }, tabData.getTextProperty(), tabData.getInitialTextProperty());
                    newTab.textProperty().bind(tabTextBinding);
                });
            }

            Platform.runLater(() -> {
                menuTabBindingSourceCode.setSettings(projectSettings, true);
                menuTabBindingHelp.setSettings(projectSettings, false);

                butSaveAll.disableProperty().unbind();
                mnuSaveAll.disableProperty().unbind();
                butSaveAll.setDisable(true);
                mnuSaveAll.setDisable(true);

                List<BooleanBinding> saveBindings = new ArrayList<>();
                projectTabPane.getTabs().forEach(tab -> {
                    CodeTabData tabData = getData(tab);
                    saveBindings.add(Bindings.createBooleanBinding(() -> !tabData.isDirty(),
                            tabData.getTextProperty(), tabData.getInitialTextProperty()));
                });
                if (!saveBindings.isEmpty()) {
                    BooleanBinding binding = saveBindings.get(0);
                    for (int i = 1; i < saveBindings.size(); i++) {
                        binding = Bindings.and(binding, saveBindings.get(i));
                    }
                    mnuSaveAll.disableProperty().bind(binding);
                    butSaveAll.disableProperty().bind(binding);
                }
            });
        };
        projectTabPane.getSelectionModel().selectedItemProperty().addListener(selectedItemListener);
    }

    int selectedTabIndex = (projectSettings == null) ? 0
            : projectSettings.getProperty(PROP_SELECTED_TAB_INDEX, 0, false);

    ObservableList<Tab> tabs = projectTabPane.getTabs();
    tabs.clear();

    Tab selectedTab = null;
    List<String> openFiles = getOpenFiles(projectSettings);
    for (int i = 0; i < openFiles.size(); i++) {
        String filePath = openFiles.get(i);
        Tab addedTab = null;
        if (filePath.equals(FILE_ALIAS_SOURCE_CODE)) {
            addedTab = tabSourceCode;
            String projectPath = projectPathProperty.get();
            String tabText = (projectPath == null) ? "Code" : new File(projectPath).getName();
            tabSourceCode.setUserData(new CodeTabData(tabText));
        } else if (filePath.equals(FILE_ALIAS_HELP)) {
            addedTab = tabHelp;
        } else {
            try {
                File file = new File(filePath);
                addedTab = CodeAreaTab.fromFile(file);
                final Tab tab = addedTab;
                tab.setOnCloseRequest(ev -> {
                    if (!tryClose(tab))
                        ev.consume();
                });
            } catch (Exception e) {
                addedTab = null;
            }
        }
        if (addedTab != null) {
            tabs.add(addedTab);
            getData(addedTab).setFilePath(filePath);
            if (i == selectedTabIndex) {
                selectedTab = addedTab;
            }
        }
    }
    if (!tabs.isEmpty()) {
        if (selectedTab == null) {
            selectedTab = tabs.get(0);
        }
        projectTabPane.getSelectionModel().select(null);
        projectTabPane.getSelectionModel().select(selectedTab);
    }
}

From source file:de.bayern.gdi.gui.Controller.java

private void setCrsAndExtent(WFSMeta.Feature feature) {
    wmsWfsMapHandler.setExtend(feature.getBBox());
    ArrayList<String> list = new ArrayList<>();
    list.add(feature.getDefaultCRS());//from  w  ww. j av a 2 s. c  o  m
    list.addAll(feature.getOtherCRSs());
    ObservableList<CRSModel> crsList = FXCollections.observableArrayList();
    for (String crsStr : list) {
        try {
            String newcrsStr = crsStr;
            String seperator = null;
            if (newcrsStr.contains("::")) {
                seperator = "::";
            } else if (newcrsStr.contains("/")) {
                seperator = "/";
            }
            if (seperator != null) {
                newcrsStr = "EPSG:" + newcrsStr.substring(newcrsStr.lastIndexOf(seperator) + seperator.length(),
                        newcrsStr.length());
            }
            CoordinateReferenceSystem crs = CRS.decode(newcrsStr);
            CRSModel crsm = new CRSModel(crs);
            crsm.setOldName(crsStr);
            crsList.add(crsm);
        } catch (FactoryException e) {
            log.error(e.getMessage(), e);
        }
    }
    if (!crsList.isEmpty()) {
        this.referenceSystemChooser.setItems(crsList);
        CRSModel crsm = crsList.get(0);
        try {
            CoordinateReferenceSystem initCRS = CRS.decode(INITIAL_CRS_DISPLAY);
            CRSModel initCRSM = new CRSModel(initCRS);
            for (int i = 0; i < crsList.size(); i++) {
                if (crsList.get(i).equals(initCRSM)) {
                    crsm = crsList.get(i);
                    break;
                }
            }
        } catch (FactoryException e) {
            log.error(e.getMessage(), e);
        }
        this.referenceSystemChooser.setValue(crsm);
    }
}

From source file:fr.amap.lidar.amapvox.gui.MainFrameController.java

public void setStage(final Stage stage) {

    this.stage = stage;

    stage.setOnShown(new EventHandler<WindowEvent>() {

        @Override// ww w. j a v a2 s . c o  m
        public void handle(WindowEvent event) {
            ObservableList<Screen> screens = Screen.getScreensForRectangle(stage.getX(), stage.getY(),
                    stage.getWidth(), stage.getHeight());

            if (screens != null && screens.size() > 0) {
                SCREEN_WIDTH = screens.get(0).getBounds().getWidth();
                SCREEN_HEIGHT = screens.get(0).getBounds().getHeight();
            }
        }
    });

    viewer3DPanelController.setStage(stage);
}

From source file:fr.amap.lidar.amapvox.gui.MainFrameController.java

private void editVoxelSpace(final File voxelFile) {

    if (editingFrameOpened) {
        return;/*www .  j a v  a 2  s. c om*/
    }

    editingFrameOpened = true;
    voxelsToRemove.clear();

    final String attributeToView = "PadBVTotal";

    //window size
    ObservableList<Screen> screens = Screen.getScreens();

    if (screens != null && screens.size() > 0) {
        SCREEN_WIDTH = screens.get(0).getBounds().getWidth();
        SCREEN_HEIGHT = screens.get(0).getBounds().getHeight();
    }

    try {

        Service s = new Service() {

            @Override
            protected Task createTask() {
                return new Task() {

                    @Override
                    protected Object call() throws Exception {

                        SimpleViewer viewer3D = new SimpleViewer((int) (SCREEN_WIDTH / 4.0d),
                                (int) (SCREEN_HEIGHT / 4.0d), (int) (SCREEN_WIDTH / 1.5d),
                                (int) (SCREEN_HEIGHT / 2.0d), voxelFile.toString());

                        fr.amap.viewer3d.object.scene.Scene scene = viewer3D.getScene();

                        /**
                         * *VOXEL SPACE**
                         */
                        updateMessage("Loading voxel space: " + voxelFile.getAbsolutePath());

                        final VoxelSpaceSceneObject voxelSpace = new VoxelSpaceSceneObject(voxelFile);
                        voxelSpace.setMousePickable(true);

                        voxelSpace.addVoxelSpaceListener(new VoxelSpaceAdapter() {

                            @Override
                            public void voxelSpaceCreationProgress(int progress) {
                                updateProgress(progress, 100);
                            }
                        });

                        voxelSpace.loadVoxels();
                        float voxelResolution = voxelSpace.data.getVoxelSpaceInfos().getResolution();

                        VoxelFileReader reader = new VoxelFileReader(voxelFile);
                        VoxelSpaceInfos infos = reader.getVoxelSpaceInfos();

                        final SceneObject boundingBox = new SimpleSceneObject();
                        boundingBox.setMesh(GLMeshFactory.createBoundingBox((float) infos.getMinCorner().x,
                                (float) infos.getMinCorner().y, (float) infos.getMinCorner().z,
                                (float) infos.getMaxCorner().x, (float) infos.getMaxCorner().y,
                                (float) infos.getMaxCorner().z));

                        SimpleShader s = new SimpleShader();
                        s.setColor(new Vec3F(1, 0, 0));
                        boundingBox.setShader(s);
                        boundingBox.setDrawType(GLMesh.DrawType.LINES);
                        scene.addSceneObject(boundingBox);

                        /*
                         * Voxel information
                         */
                        StringToImage stringToImage = new StringToImage(1024, 1024);
                        stringToImage.setAdaptableFontSize(true);
                        stringToImage.setBackgroundColor(new Color(255, 255, 255, 127));
                        stringToImage.setTextColor(new Color(0, 0, 0, 255));

                        BufferedImage image = new BufferedImage(1024, 1024, BufferedImage.TYPE_INT_ARGB);

                        Texture texture = new Texture(image);

                        int pickingInfoObjectWidth = viewer3D.getWidth() / 5;
                        int pickingInfoObjectHeight = viewer3D.getHeight() / 5;

                        SceneObject pickingInfoObject = SceneObjectFactory.createTexturedPlane(
                                new Vec3F(viewer3D.getWidth() - pickingInfoObjectWidth,
                                        viewer3D.getHeight() - pickingInfoObjectHeight, 0),
                                pickingInfoObjectWidth, pickingInfoObjectHeight, texture);

                        pickingInfoObject.setShader(new TextureShader());
                        pickingInfoObject.setDrawType(GLMesh.DrawType.TRIANGLES);

                        SceneObject sceneObjectSelectedVox = new SimpleSceneObject(
                                GLMeshFactory.createBoundingBox(-voxelResolution / 2.0f,
                                        -voxelResolution / 2.0f, -voxelResolution / 2.0f,
                                        voxelResolution / 2.0f, voxelResolution / 2.0f, voxelResolution / 2.0f),
                                false);

                        SimpleShader simpleShader = new SimpleShader();
                        simpleShader.setColor(new Vec3F(1, 0, 0));
                        sceneObjectSelectedVox.setVisible(false);
                        sceneObjectSelectedVox.setShader(simpleShader);
                        sceneObjectSelectedVox.setDrawType(GLMesh.DrawType.LINES);

                        viewer3D.getScene().addSceneObject(sceneObjectSelectedVox);

                        final SimpleObjectProperty<VoxelObject> selectedVoxel = new SimpleObjectProperty<>();

                        SceneObjectListener listener = new SceneObjectListener() {
                            @Override
                            public void clicked(SceneObject sceneObject, MousePicker mousePicker,
                                    Point3D intersection) {

                                Vec3F camLocation = viewer3D.getScene().getCamera().getLocation();

                                selectedVoxel.set(voxelSpace.doPicking(mousePicker));

                                if (selectedVoxel.get() != null) {

                                    String[][] lines = new String[voxelSpace.getColumnsNames().length][2];

                                    for (int i = 0; i < voxelSpace.getColumnsNames().length; i++) {

                                        lines[i][0] = voxelSpace.getColumnsNames()[i];

                                        float attribut = selectedVoxel.get().getAttributs()[i];
                                        if (Float.isNaN(attribut)) {
                                            lines[i][1] = "NaN";
                                        } else {
                                            lines[i][1] = String
                                                    .valueOf(Math.round(attribut * 1000.0f) / 1000.0f);
                                        }

                                    }

                                    arrangeText(lines);

                                    String text = "";
                                    for (int i = 0; i < voxelSpace.getColumnsNames().length; i++) {

                                        String attribut = lines[i][0] + " " + lines[i][1];
                                        text += attribut + "\n";
                                    }

                                    stringToImage.setText(text, 0, 0);

                                    texture.setBufferedImage(stringToImage.buildImage());
                                    Point3f voxelPosition = voxelSpace.getVoxelPosition(selectedVoxel.get().$i,
                                            selectedVoxel.get().$j, selectedVoxel.get().$k);

                                    sceneObjectSelectedVox.setPosition(
                                            new Point3F(voxelPosition.x, voxelPosition.y, voxelPosition.z));
                                    sceneObjectSelectedVox.setVisible(true);
                                    pickingInfoObject.setVisible(true);
                                } else {
                                    sceneObjectSelectedVox.setVisible(false);
                                    pickingInfoObject.setVisible(false);
                                }
                            }
                        };

                        final SimpleIntegerProperty currentZCropIndex = new SimpleIntegerProperty(0);

                        viewer3D.addEventListener(new EventManager(null, new InputKeyListener()) {
                            @Override
                            public void updateEvents() {

                                if (this.keyboard.isKeyClicked(KeyEvent.VK_DELETE)) {
                                    if (selectedVoxel.get() != null) {
                                        selectedVoxel.get().setAlpha(0);
                                        selectedVoxel.get().isHidden = true;
                                        voxelSpace.updateVao();
                                        sceneObjectSelectedVox.setVisible(false);
                                        pickingInfoObject.setVisible(false);
                                        voxelsToRemove.add(new Point3i(selectedVoxel.get().$i,
                                                selectedVoxel.get().$j, selectedVoxel.get().$k));
                                    }
                                }
                            }
                        });

                        voxelSpace.addSceneObjectListener(listener);

                        voxelSpace.changeCurrentAttribut(attributeToView);
                        voxelSpace.setShader(new InstanceLightedShader());
                        voxelSpace.setDrawType(GLMesh.DrawType.TRIANGLES);
                        scene.addSceneObject(voxelSpace);

                        scene.addSceneObjectAsHud(pickingInfoObject);

                        /**
                         * *scale**
                         */
                        updateMessage("Generating scale");
                        final Texture scaleTexture = new Texture(ScaleGradient.createColorScaleBufferedImage(
                                voxelSpace.getGradient(), voxelSpace.getAttributValueMin(),
                                voxelSpace.getAttributValueMax(), viewer3D.getWidth() - 80,
                                (int) (viewer3D.getHeight() / 20), ScaleGradient.Orientation.HORIZONTAL, 5, 8));

                        SceneObject scalePlane = SceneObjectFactory.createTexturedPlane(new Vec3F(40, 20, 0),
                                (int) (viewer3D.getWidth() - 80), (int) (viewer3D.getHeight() / 20),
                                scaleTexture);

                        scalePlane.setShader(new TextureShader());
                        scalePlane.setDrawType(GLMesh.DrawType.TRIANGLES);
                        scene.addSceneObjectAsHud(scalePlane);

                        voxelSpace.addPropertyChangeListener("gradientUpdated", new PropertyChangeListener() {

                            @Override
                            public void propertyChange(PropertyChangeEvent evt) {

                                BufferedImage image = ScaleGradient.createColorScaleBufferedImage(
                                        voxelSpace.getGradient(), voxelSpace.getAttributValueMin(),
                                        voxelSpace.getAttributValueMax(), viewer3D.getWidth() - 80,
                                        (int) (viewer3D.getHeight() / 20), ScaleGradient.Orientation.HORIZONTAL,
                                        5, 8);

                                scaleTexture.setBufferedImage(image);
                            }
                        });

                        /**
                         * *light**
                         */
                        scene.setLightPosition(
                                new Point3F(voxelSpace.getGravityCenter().x, voxelSpace.getGravityCenter().y,
                                        voxelSpace.getGravityCenter().z + voxelSpace.widthZ + 100));

                        /**
                         * *camera**
                         */
                        TrackballCamera trackballCamera = new TrackballCamera();
                        trackballCamera.setPivot(voxelSpace);
                        trackballCamera
                                .setLocation(new Vec3F(voxelSpace.getGravityCenter().x + voxelSpace.widthX,
                                        voxelSpace.getGravityCenter().y + voxelSpace.widthY,
                                        voxelSpace.getGravityCenter().z + voxelSpace.widthZ));
                        viewer3D.getScene().setCamera(trackballCamera);

                        Platform.runLater(new Runnable() {

                            @Override
                            public void run() {

                                final Stage toolBarFrameStage = new Stage();
                                final FXMLLoader loader = new FXMLLoader(
                                        getClass().getResource("/fxml/ToolBoxFrame.fxml"));

                                try {
                                    stage.setAlwaysOnTop(false);

                                    Parent root = loader.load();
                                    toolBarFrameStage.setScene(new Scene(root));
                                    toolBarFrameStage.initStyle(StageStyle.UNDECORATED);

                                    toolBarFrameStage.setAlwaysOnTop(true);

                                    ToolBoxFrameController toolBarFrameController = loader.getController();
                                    toolBarFrameController.setStage(toolBarFrameStage);
                                    toolBarFrameStage.setX(viewer3D.getPosition().getX());
                                    toolBarFrameStage.setY(viewer3D.getPosition().getY());
                                    toolBarFrameController.setJoglListener(viewer3D.getJoglContext());
                                    toolBarFrameController.setAttributes(attributeToView,
                                            voxelSpace.data.getVoxelSpaceInfos().getColumnNames());

                                    toolBarFrameStage.focusedProperty()
                                            .addListener(new ChangeListener<Boolean>() {

                                                @Override
                                                public void changed(
                                                        ObservableValue<? extends Boolean> observable,
                                                        Boolean oldValue, Boolean newValue) {
                                                    if (newValue) {
                                                        toolBarFrameStage.setAlwaysOnTop(true);
                                                        toolBarFrameStage.setX(viewer3D.getPosition().getX());
                                                        toolBarFrameStage.setY(viewer3D.getPosition().getY());
                                                    } else if (!viewer3D.isFocused()) {
                                                        toolBarFrameStage.setAlwaysOnTop(false);
                                                    }
                                                }
                                            });

                                    toolBarFrameController.initContent(voxelSpace);
                                    toolBarFrameStage.setAlwaysOnTop(true);

                                    toolBarFrameStage.show();

                                    double maxToolBoxHeight = toolBarFrameStage.getHeight();
                                    viewer3D.getJoglContext().setStartX((int) toolBarFrameStage.getWidth());

                                    viewer3D.getRenderFrame().addWindowListener(new WindowAdapter() {

                                        @Override
                                        public void windowResized(com.jogamp.newt.event.WindowEvent we) {

                                            Window window = (Window) we.getSource();
                                            final double height = window.getHeight();

                                            Platform.runLater(new Runnable() {

                                                @Override
                                                public void run() {

                                                    if (height < maxToolBoxHeight) {
                                                        toolBarFrameStage.setHeight(height);
                                                    } else {
                                                        toolBarFrameStage.setHeight(maxToolBoxHeight);
                                                    }

                                                    toolBarFrameStage.setX(viewer3D.getPosition().getX());
                                                    toolBarFrameStage.setY(viewer3D.getPosition().getY());
                                                }
                                            });
                                        }

                                        @Override
                                        public void windowMoved(com.jogamp.newt.event.WindowEvent we) {

                                            Platform.runLater(new Runnable() {

                                                @Override
                                                public void run() {
                                                    toolBarFrameStage.setX(viewer3D.getPosition().getX());
                                                    toolBarFrameStage.setY(viewer3D.getPosition().getY());
                                                }
                                            });
                                        }

                                        @Override
                                        public void windowDestroyed(com.jogamp.newt.event.WindowEvent we) {

                                            Platform.runLater(new Runnable() {

                                                @Override
                                                public void run() {
                                                    toolBarFrameStage.close();

                                                    if (fcSaveVoxelFileForAreaExtracting == null) {
                                                        fcSaveVoxelFileForAreaExtracting = new FileChooserContext();

                                                        if (fcOpenVoxelFileForAreaExtracting != null) {
                                                            fcSaveVoxelFileForAreaExtracting.fc
                                                                    .setInitialDirectory(
                                                                            fcOpenVoxelFileForAreaExtracting.lastSelectedFile
                                                                                    .getParentFile());
                                                        }
                                                    }

                                                    File selectedFile = fcSaveVoxelFileForAreaExtracting
                                                            .showSaveDialog(stage);

                                                    if (selectedFile != null) {
                                                        VoxelFileReader reader;
                                                        BufferedWriter writer = null;

                                                        try {
                                                            reader = new VoxelFileReader(voxelFile, true);
                                                            VoxelSpaceInfos infos = reader.getVoxelSpaceInfos();

                                                            writer = new BufferedWriter(
                                                                    new FileWriter(selectedFile));

                                                            writer.write(infos.toString() + "\n");

                                                            Iterator<Voxel> iterator = reader.iterator();

                                                            while (iterator.hasNext()) {

                                                                Voxel voxel = iterator.next();

                                                                if (voxelsToRemove.contains(new Point3i(
                                                                        voxel.$i, voxel.$j, voxel.$k))) {
                                                                    voxel.PadBVTotal = 0;
                                                                    voxel.nbEchos = 0;
                                                                    voxel.transmittance = 1;
                                                                    voxel.bvIntercepted = 0;
                                                                }

                                                                writer.write(voxel + "\n");
                                                            }

                                                            writer.close();

                                                            addFileToProductsList(selectedFile);

                                                        } catch (Exception ex) {
                                                            showErrorDialog(ex);
                                                        } finally {
                                                            try {
                                                                if (writer != null) {
                                                                    writer.close();
                                                                }

                                                            } catch (IOException ex) {
                                                                showErrorDialog(ex);
                                                            }
                                                        }
                                                    }

                                                    editingFrameOpened = false;
                                                }
                                            });
                                        }

                                        @Override
                                        public void windowGainedFocus(com.jogamp.newt.event.WindowEvent we) {

                                            viewer3D.setIsFocused(true);

                                            Platform.runLater(new Runnable() {

                                                @Override
                                                public void run() {

                                                    if (!toolBarFrameStage.isShowing()) {
                                                        toolBarFrameStage.toFront();
                                                    }

                                                    toolBarFrameStage.setIconified(false);
                                                    toolBarFrameStage.setAlwaysOnTop(true);

                                                    toolBarFrameStage.setX(viewer3D.getPosition().getX());
                                                    toolBarFrameStage.setY(viewer3D.getPosition().getY());
                                                }
                                            });
                                        }

                                        @Override
                                        public void windowLostFocus(com.jogamp.newt.event.WindowEvent e) {

                                            viewer3D.setIsFocused(false);
                                            Platform.runLater(new Runnable() {

                                                @Override
                                                public void run() {
                                                    if (!toolBarFrameStage.focusedProperty().get()) {
                                                        toolBarFrameStage.setIconified(true);
                                                        toolBarFrameStage.setAlwaysOnTop(false);
                                                    }
                                                }
                                            });
                                        }
                                    });

                                    viewer3D.show();

                                    toolBarFrameStage.setAlwaysOnTop(true);

                                } catch (IOException e) {
                                    showErrorDialog(new Exception("Loading ToolBarFrame.fxml failed", e));
                                } catch (Exception e) {
                                    showErrorDialog(new Exception("Error occured during toolbar init", e));
                                }
                            }
                        });

                        return null;
                    }
                };
            }
        };

        ProgressDialog d = new ProgressDialog(s);
        d.show();

        s.start();

    } catch (Exception ex) {
        showErrorDialog(new Exception("Cannot launch 3d view", ex));
    }
}

From source file:editeurpanovisu.EditeurPanovisu.java

/**
 *
 * @param iNumZone numro de la zone//from  w w w.  ja va2 s  .  c o  m
 * @param points liste de points du polygone
 * @return ancres du polygone
 */
private static ObservableList<AncreForme> olCreeAncresPourPolygone(int iNumZone,
        final ObservableList<Double> points) {
    ObservableList<AncreForme> olAnchors = FXCollections.observableArrayList();

    for (int i = 0; i < points.size(); i += 2) {
        final int idx = i;

        DoubleProperty xProperty = new SimpleDoubleProperty(points.get(i));
        DoubleProperty yProperty = new SimpleDoubleProperty(points.get(i + 1));

        xProperty.addListener((ObservableValue<? extends Number> ov, Number oldX, Number x) -> {
            points.set(idx, (double) x);
            String chaine = "";
            chaine = points.stream().map((point) -> point.toString() + ",").reduce(chaine, String::concat);
            chaine = chaine.substring(0, chaine.length() - 1);
            zones[iNumZone].setStrCoordonneesZone(chaine);
        });

        yProperty.addListener((ObservableValue<? extends Number> ov, Number oldY, Number y) -> {
            points.set(idx + 1, (double) y);
            String chaine = "";
            chaine = points.stream().map((point) -> point.toString() + ",").reduce(chaine, String::concat);
            chaine = chaine.substring(0, chaine.length() - 1);
            zones[iNumZone].setStrCoordonneesZone(chaine);
        });

        olAnchors.add(new AncreForme(Color.GOLD, xProperty, yProperty));
    }

    return olAnchors;
}