Search in sources :

Example 26 with Task

use of javafx.concurrent.Task in project jgnash by ccavanaugh.

the class BudgetViewController method handleExportAction.

@FXML
private void handleExportAction() {
    Objects.requireNonNull(budgetTableController);
    final Preferences pref = Preferences.userNodeForPackage(BudgetViewController.class);
    final FileChooser fileChooser = new FileChooser();
    final File initialDirectory = new File(pref.get(EXPORT_DIR, System.getProperty("user.home")));
    // Protect against an IllegalArgumentException
    if (initialDirectory.isDirectory()) {
        fileChooser.setInitialDirectory(initialDirectory);
    }
    fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter(resources.getString("Label.SpreadsheetFiles") + " (*.xls, *.xlsx)", "*.xls", "*.xlsx"));
    final File file = fileChooser.showSaveDialog(MainView.getPrimaryStage());
    if (file != null) {
        pref.put(EXPORT_DIR, file.getParentFile().getAbsolutePath());
        final Task<String> exportTask = new Task<>() {

            @Override
            protected String call() {
                updateMessage(resources.getString("Message.PleaseWait"));
                updateProgress(-1, Long.MAX_VALUE);
                return BudgetResultsExport.exportBudgetResultsModel(file.toPath(), budgetTableController.getBudgetResultsModel());
            }
        };
        new Thread(exportTask).start();
        StaticUIMethods.displayTaskProgress(exportTask);
    }
}
Also used : Task(javafx.concurrent.Task) FileChooser(javafx.stage.FileChooser) Preferences(java.util.prefs.Preferences) File(java.io.File) FXML(javafx.fxml.FXML)

Example 27 with Task

use of javafx.concurrent.Task in project jgnash by ccavanaugh.

the class DefaultCurrencyAction method showAndWait.

public static void showAndWait() {
    final Task<List<CurrencyNode>> task = new Task<>() {

        final ResourceBundle resources = ResourceUtils.getBundle();

        private List<CurrencyNode> currencyNodeList;

        @Override
        protected List<CurrencyNode> call() {
            final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
            Objects.requireNonNull(engine);
            currencyNodeList = engine.getCurrencies();
            return currencyNodeList;
        }

        @Override
        protected void succeeded() {
            super.succeeded();
            JavaFXUtils.runLater(() -> {
                final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
                Objects.requireNonNull(engine);
                final ChoiceDialog<CurrencyNode> dialog = new ChoiceDialog<>(engine.getDefaultCurrency(), currencyNodeList);
                dialog.setTitle(resources.getString("Title.SelDefCurr"));
                dialog.setContentText(resources.getString("Title.SelDefCurr"));
                final Optional<CurrencyNode> optional = dialog.showAndWait();
                optional.ifPresent(currencyNode -> {
                    engine.setDefaultCurrency(currencyNode);
                    JavaFXUtils.runLater(() -> StaticUIMethods.displayMessage(resources.getString("Message.CurrChange") + " " + engine.getDefaultCurrency().getSymbol()));
                });
            });
        }
    };
    new Thread(task).start();
}
Also used : CurrencyNode(jgnash.engine.CurrencyNode) ChoiceDialog(jgnash.uifx.control.ChoiceDialog) Task(javafx.concurrent.Task) List(java.util.List) ResourceBundle(java.util.ResourceBundle) Engine(jgnash.engine.Engine)

Example 28 with Task

use of javafx.concurrent.Task in project jgnash by ccavanaugh.

the class DefaultLocaleAction method showAndWait.

public static void showAndWait() {
    final Task<Collection<LocaleObject>> task = new Task<>() {

        final ResourceBundle resources = ResourceUtils.getBundle();

        private Collection<LocaleObject> localeObjects;

        @Override
        protected Collection<LocaleObject> call() {
            localeObjects = new ArrayList<>(LocaleObject.getLocaleObjects());
            return localeObjects;
        }

        @Override
        protected void succeeded() {
            super.succeeded();
            JavaFXUtils.runLater(() -> {
                final ChoiceDialog<LocaleObject> dialog = new ChoiceDialog<>(new LocaleObject(Locale.getDefault()), localeObjects);
                dialog.setTitle(resources.getString("Title.SelDefLocale"));
                dialog.setContentText(resources.getString("Title.SelDefLocale"));
                final Optional<LocaleObject> optional = dialog.showAndWait();
                optional.ifPresent(localeObject -> {
                    ResourceUtils.setLocale(localeObject.getLocale());
                    JavaFXUtils.runLater(() -> StaticUIMethods.displayMessage(localeObject + "\n" + resources.getString("Message.RestartLocale")));
                });
            });
        }
    };
    new Thread(task).start();
}
Also used : ChoiceDialog(jgnash.uifx.control.ChoiceDialog) Task(javafx.concurrent.Task) Collection(java.util.Collection) ResourceBundle(java.util.ResourceBundle) LocaleObject(jgnash.util.LocaleObject)

Example 29 with Task

use of javafx.concurrent.Task in project Entitas-Java by Rubentxu.

the class CodeGeneratorApp method handleGenerate.

@FXML
public void handleGenerate(ActionEvent actionEvent) throws IOException {
    result.setText("");
    progress.setVisible(true);
    result.setText("Generating...");
    if (props != null)
        saveProperties();
    // loads the items at another thread, asynchronously
    Task loader = new Task<List<CodeGenFile>>() {

        {
            setOnSucceeded(workerStateEvent -> {
                progress.setVisible(false);
                result.setText("Success");
            });
            setOnFailed(workerStateEvent -> {
                result.setText("Failed");
                getException().printStackTrace();
            });
        }

        @Override
        protected List<CodeGenFile> call() throws Exception {
            List<ICodeGenerator> codeGenerators = new ArrayList<>();
            if (componentsGenerator.isSelected())
                codeGenerators.add(new EntityGenerator());
            if (componentIndicesGenerator.isSelected())
                codeGenerators.add(new ComponentIndicesGenerator());
            if (contextsGenerator.isSelected())
                codeGenerators.add(new ContextGenerator());
            codeGenerators.add(new MatcherGenerator());
            codeGenerators.add(new EntitasGenerator());
            TypeReflectionProvider provider = new TypeReflectionProvider(fieldComponentFolder.getText());
            CodeGeneratorOld generator = new CodeGeneratorOld();
            return generator.generate(provider, fieldGeneratedFolder.getText(), codeGenerators);
        }
    };
    Thread loadingThread = new Thread(loader, "generated-loader");
    loadingThread.setDaemon(true);
    loadingThread.start();
}
Also used : Task(javafx.concurrent.Task) ArrayList(java.util.ArrayList) TypeReflectionProvider(ilargia.entitas.codeGenerator.providers.TypeReflectionProvider) ICodeGenerator(ilargia.entitas.codeGeneration.interfaces.ICodeGenerator) CodeGenFile(ilargia.entitas.codeGeneration.data.CodeGenFile) FXML(javafx.fxml.FXML)

Example 30 with Task

use of javafx.concurrent.Task in project trex-stateless-gui by cisco-system-traffic-generator.

the class PortLayerConfiguration method runPingCmd.

private void runPingCmd(Event event) {
    if (model.getPortStatus().equalsIgnoreCase("tx")) {
        guiLogger.appendText(LogType.ERROR, "Port " + model.getIndex() + " is in TX mode. Please stop traffic first.");
        return;
    }
    if (Strings.isNullOrEmpty(pingDestination.getText())) {
        guiLogger.appendText(LogType.ERROR, "Empty ping destination address.");
        return;
    }
    final String targetIP = pingDestination.getText();
    if (!targetIP.contains(":") && !model.getL3LayerConfiguration().getState().equalsIgnoreCase("resolved")) {
        guiLogger.appendText(LogType.ERROR, "ARP resolution required. Configure L3IPv4 mode properly.");
        return;
    }
    pingCommandBtn.setDisable(true);
    Task<Void> pingTask = new Task<Void>() {

        @Override
        public Void call() {
            TRexClient trexClient = ConnectionManager.getInstance().getTrexClient();
            trexClient.serviceMode(model.getIndex(), true);
            guiLogger.appendText(LogType.PING, " Start ping " + targetIP);
            AsyncResponseManager.getInstance().muteLogger();
            AsyncResponseManager.getInstance().suppressIncomingEvents(true);
            try {
                int icmp_id = new Random().nextInt(100);
                for (int icmp_sec = 1; icmp_sec < 6; icmp_sec++) {
                    EthernetPacket reply = null;
                    if (targetIP.contains(":")) {
                        // IPv6
                        reply = trexClient.sendIcmpV6Echo(model.getIndex(), targetIP, icmp_id, icmp_sec, 2);
                        if (reply != null) {
                            IcmpV6CommonPacket icmpV6CommonPacket = reply.get(IcmpV6CommonPacket.class);
                            IcmpV6Type icmpReplyType = icmpV6CommonPacket.getHeader().getType();
                            String msg = null;
                            if (IcmpV6Type.ECHO_REPLY.equals(icmpReplyType)) {
                                msg = " Reply from " + targetIP + " size=" + reply.getRawData().length + " icmp_sec=" + icmp_sec;
                            } else if (IcmpV6Type.DESTINATION_UNREACHABLE.equals(icmpReplyType)) {
                                msg = " Destination host unreachable";
                            }
                            guiLogger.appendText(LogType.PING, msg);
                        } else {
                            guiLogger.appendText(LogType.PING, "Request timeout.");
                        }
                    } else {
                        // IPv4
                        reply = trexClient.sendIcmpEcho(model.getIndex(), targetIP, icmp_id, icmp_sec, 1000);
                        if (reply != null) {
                            IpV4Packet ip = reply.get(IpV4Packet.class);
                            String ttl = String.valueOf(ip.getHeader().getTtlAsInt());
                            IcmpV4CommonPacket echoReplyPacket = reply.get(IcmpV4CommonPacket.class);
                            IcmpV4Type replyType = echoReplyPacket.getHeader().getType();
                            if (IcmpV4Type.ECHO_REPLY.equals(replyType)) {
                                guiLogger.appendText(LogType.PING, " Reply from " + targetIP + " size=" + reply.getRawData().length + " ttl=" + ttl + " icmp_sec=" + icmp_sec);
                            } else if (IcmpV4Type.DESTINATION_UNREACHABLE.equals(replyType)) {
                                guiLogger.appendText(LogType.PING, " Destination host unreachable");
                            }
                        } else {
                            guiLogger.appendText(LogType.PING, " Request timeout for icmp_seq " + icmp_sec);
                        }
                    }
                }
                guiLogger.appendText(LogType.PING, " Ping finished.");
            } catch (UnknownHostException e) {
                guiLogger.appendText(LogType.PING, " Unknown host");
            } catch (ServiceModeRequiredException e) {
                e.printStackTrace();
            } finally {
                pingCommandBtn.setDisable(false);
                trexClient.serviceMode(model.getIndex(), false);
                AsyncResponseManager.getInstance().unmuteLogger();
                AsyncResponseManager.getInstance().suppressIncomingEvents(false);
            }
            return null;
        }
    };
    pingTask.setOnSucceeded(e -> pingCommandBtn.setDisable(false));
    new Thread(pingTask).start();
}
Also used : Task(javafx.concurrent.Task) IcmpV6CommonPacket(org.pcap4j.packet.IcmpV6CommonPacket) IcmpV4CommonPacket(org.pcap4j.packet.IcmpV4CommonPacket) TRexClient(com.cisco.trex.stateless.TRexClient) UnknownHostException(java.net.UnknownHostException) ServiceModeRequiredException(com.cisco.trex.stateless.exception.ServiceModeRequiredException) EthernetPacket(org.pcap4j.packet.EthernetPacket) IcmpV4Type(org.pcap4j.packet.namednumber.IcmpV4Type) IcmpV6Type(org.pcap4j.packet.namednumber.IcmpV6Type) IpV4Packet(org.pcap4j.packet.IpV4Packet)

Aggregations

Task (javafx.concurrent.Task)30 FXML (javafx.fxml.FXML)9 File (java.io.File)8 List (java.util.List)5 IOException (java.io.IOException)4 Collectors (java.util.stream.Collectors)4 TRexClient (com.cisco.trex.stateless.TRexClient)3 ServiceModeRequiredException (com.cisco.trex.stateless.exception.ServiceModeRequiredException)3 FxUtil (com.kyj.fx.voeditor.visual.util.FxUtil)3 ValueUtil (com.kyj.fx.voeditor.visual.util.ValueUtil)3 ResourceBundle (java.util.ResourceBundle)3 Platform (javafx.application.Platform)3 ObservableList (javafx.collections.ObservableList)3 Node (javafx.scene.Node)3 Label (javafx.scene.control.Label)3 ImageView (javafx.scene.image.ImageView)3 Ipv6Node (com.cisco.trex.stateless.model.Ipv6Node)2 ActivePGIdsRPCResult (com.cisco.trex.stateless.model.stats.ActivePGIdsRPCResult)2 IPv6Host (com.cisco.trex.stl.gui.models.IPv6Host)2 DialogUtil (com.kyj.fx.voeditor.visual.util.DialogUtil)2