Hi!
Take a look at HostListModel.java, line 721
    public void edit(final boolean isEditWithPMemphasis) {
        if (getWindow() != null) {
            return;
        }
        AsyncDataProvider.getInstance().getDataCenterList(new AsyncQuery<>(dataCenters -> {
            VDS host = getSelectedItem();
            final EditHostModel hostModel = new EditHostModel();
            hostModel.updateModelFromVds(host, dataCenters, isEditWithPMemphasis);
            hostModel.setSelectedCluster(host);
            hostModel.onDataInitialized();
            hostModel.setTitle(ConstantsManager.getInstance().getConstants().editHostTitle());
            hostModel.setHelpTag(HelpTag.edit_host);
            hostModel.setHashName("edit_host"); //$NON-NLS-1$
            hostModel.setIsHeSystem(isHeSystem());
            hostModel.setHostsWithHeDeployed(getHostsWithHeDeployed());
            hostModel.setHostedEngineHostModel(new HostedEngineHostModel());
            setWindow(hostModel);
See how we have EditHostModel? and then we call setWindow(hostModel). That opens the popup.
You'll need to do something similar. Perhaps call it "DeployHostModel". The properties that model will have will depend on what you are trying to accomplish.
This part of the code is complex, and in the future we'd like to simplify it. I hope this gets you started, and feel fee to ask follow-up questions.
Best wishes,
Greg