Search in sources :

Example 1 with Stream

use of com.exalttech.trex.remote.models.profiles.Stream in project trex-stateless-gui by cisco-system-traffic-generator.

the class PacketBuilderHomeController method initEditStream.

private void initEditStream(String pcapFileBinary) {
    streamTabPane.setDisable(false);
    saveButton.setDisable(false);
    streamEditorModeBtn.setDisable(false);
    Stream currentStream = selectedProfile.getStream();
    streamEditorModeBtn.setText(currentStream.getAdvancedMode() ? "Simple mode" : "Advanced mode");
    if (!Util.isNullOrEmpty(currentStream.getPacket().getMeta())) {
        BuilderDataBinding dataBinding = getDataBinding();
        if (dataBinding != null) {
            initStreamBuilder(dataBinding);
            return;
        } else {
            streamTabPane.setDisable(true);
            saveButton.setDisable(true);
            streamEditorModeBtn.setDisable(true);
        }
    } else {
        isImportedStreamProperty.set(true);
    }
    if (isImportedStreamProperty.get()) {
        streamTabPane.getTabs().remove(protocolDataTab);
        streamTabPane.getTabs().remove(protocolSelectionTab);
        streamTabPane.getTabs().remove(advanceSettingsTab);
        streamTabPane.getTabs().remove(packetViewerWithTreeTab);
        streamTabPane.getTabs().remove(packetEditorTab);
        streamTabPane.getTabs().remove(fieldEngineTab);
    }
    if (pcapFileBinary != null) {
        try {
            isBuildPacket = false;
            File pcapFile = trafficProfile.decodePcapBinary(pcapFileBinary);
            parser.parseFile(pcapFile.getAbsolutePath(), packetInfo);
            packetHex.setData(packetInfo);
        } catch (IOException ex) {
            LOG.error("Failed to load PCAP value", ex);
        }
    }
    String base64UserModel = currentStream.getPacket().getModel();
    if (!Strings.isNullOrEmpty(base64UserModel)) {
        packetBuilderController.loadUserModel(base64UserModel);
    }
}
Also used : BuilderDataBinding(com.exalttech.trex.ui.views.streams.binders.BuilderDataBinding) Stream(com.exalttech.trex.remote.models.profiles.Stream) IOException(java.io.IOException) File(java.io.File)

Example 2 with Stream

use of com.exalttech.trex.remote.models.profiles.Stream in project trex-stateless-gui by cisco-system-traffic-generator.

the class PacketBuilderHomeController method switchEditorMode.

@FXML
public void switchEditorMode(ActionEvent event) throws Exception {
    Stream currentStream = streamPropertiesController.getUpdatedSelectedProfile().getStream();
    boolean advancedMode = currentStream.getAdvancedMode();
    try {
        if (!ConnectionManager.getInstance().isScapyConnected()) {
            eventBus.post(new ScapyClientNeedConnectEvent());
        }
        if (advancedMode) {
            streamEditorModeBtn.setText("Advanced mode");
            currentStream.setAdvancedMode(false);
            showSimpleModeTabs();
        } else {
            if (ConnectionManager.getInstance().isScapyConnected()) {
                if (isImportedStreamProperty.getValue()) {
                    byte[] base64Packet = currentStream.getPacket().getBinary().getBytes();
                    byte[] packet = Base64.getDecoder().decode(base64Packet);
                    packetBuilderController.loadPcapBinary(packet);
                } else {
                    packetBuilderController.loadSimpleUserModel(builderDataBinder.serializeAsPacketModel());
                }
                streamEditorModeBtn.setText("Simple mode");
                currentStream.setAdvancedMode(true);
                showAdvancedModeTabs();
            } else {
                alertWarning("Can't open Advanced mode", "There is no connection to Scapy server." + "\nPlease refer to documentation about" + "\nScapy server and advanced configuration mode.");
            }
        }
    } catch (Exception e) {
        LOG.error("Unable to open advanced mode due to: " + e.getMessage());
        alertWarning("Can't open Advanced mode", "Some errors occurred. See logs for more details.");
    }
}
Also used : ScapyClientNeedConnectEvent(com.xored.javafx.packeteditor.events.ScapyClientNeedConnectEvent) Stream(com.exalttech.trex.remote.models.profiles.Stream) IOException(java.io.IOException) FXML(javafx.fxml.FXML)

Example 3 with Stream

use of com.exalttech.trex.remote.models.profiles.Stream in project trex-stateless-gui by cisco-system-traffic-generator.

the class PacketBuilderHomeController method loadStream.

private void loadStream() {
    resetTabs();
    streamTabPane.getSelectionModel().select(streamPropertiesTab);
    selectedProfile = profileList.get(currentSelectedProfileIndex);
    Stream currentStream = selectedProfile.getStream();
    String windowTitle = "Edit Stream (" + selectedProfile.getName() + ")";
    // update window title
    Stage stage = (Stage) streamTabPane.getScene().getWindow();
    stage.setTitle(windowTitle);
    streamPropertiesController.init(profileList, currentSelectedProfileIndex);
    initEditStream(currentStream.getPacket().getBinary());
    if (currentStream.getAdvancedMode()) {
        showAdvancedModeTabs();
    } else {
        showSimpleModeTabs();
    }
}
Also used : Stage(javafx.stage.Stage) Stream(com.exalttech.trex.remote.models.profiles.Stream)

Aggregations

Stream (com.exalttech.trex.remote.models.profiles.Stream)3 IOException (java.io.IOException)2 BuilderDataBinding (com.exalttech.trex.ui.views.streams.binders.BuilderDataBinding)1 ScapyClientNeedConnectEvent (com.xored.javafx.packeteditor.events.ScapyClientNeedConnectEvent)1 File (java.io.File)1 FXML (javafx.fxml.FXML)1 Stage (javafx.stage.Stage)1