Search in sources :

Example 6 with UIServiceSQL

use of org.jkiss.dbeaver.runtime.ui.UIServiceSQL in project dbeaver by serge-rider.

the class SaveScriptDialog method populateSQL.

private void populateSQL() {
    try {
        final List<DBEPersistAction> sqlScript = new ArrayList<>();
        UIUtils.runInProgressService(monitor -> {
            List<DBEPersistAction> script = viewer.generateChangesScript(monitor, saveSettings);
            if (script != null) {
                sqlScript.addAll(script);
            }
        });
        scriptText = "";
        if (!sqlScript.isEmpty()) {
            scriptText = SQLUtils.generateScript(viewer.getDataSource(), sqlScript.toArray(new DBEPersistAction[0]), false);
            scriptText = SQLUtils.generateCommentLine(viewer.getDataSource(), "Auto-generated SQL script #" + new SimpleDateFormat(GeneralUtils.DEFAULT_TIMESTAMP_PATTERN).format(new Date())) + scriptText;
            UIServiceSQL serviceSQL = DBWorkbench.getService(UIServiceSQL.class);
            if (serviceSQL != null) {
                serviceSQL.setSQLPanelText(sqlPanel, scriptText);
            }
        }
    } catch (Exception e) {
        DBWorkbench.getPlatformUI().showError("Can't generate SQL script", "Error generating SQL script from data changes", e);
    }
}
Also used : DBEPersistAction(org.jkiss.dbeaver.model.edit.DBEPersistAction) ArrayList(java.util.ArrayList) UIServiceSQL(org.jkiss.dbeaver.runtime.ui.UIServiceSQL) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 7 with UIServiceSQL

use of org.jkiss.dbeaver.runtime.ui.UIServiceSQL in project dbeaver by serge-rider.

the class SavePreviewDialog method populateSQL.

private void populateSQL() {
    try {
        final List<DBEPersistAction> sqlScript = new ArrayList<>();
        UIUtils.runInProgressService(monitor -> {
            List<DBEPersistAction> script = viewer.generateChangesScript(monitor, saveSettings);
            if (script != null) {
                sqlScript.addAll(script);
            }
        });
        String scriptText = "";
        if (!sqlScript.isEmpty()) {
            scriptText = SQLUtils.generateScript(viewer.getDataSource(), sqlScript.toArray(new DBEPersistAction[0]), false);
            scriptText = SQLUtils.generateCommentLine(viewer.getDataSource(), "Auto-generated SQL script. Actual values for binary/complex data types may differ - what you see is the default string representation of values.") + scriptText;
            UIServiceSQL serviceSQL = DBWorkbench.getService(UIServiceSQL.class);
            if (serviceSQL != null) {
                serviceSQL.setSQLPanelText(sqlPanel, scriptText);
            }
        }
    } catch (Exception e) {
        DBWorkbench.getPlatformUI().showError("Can't generalte SQL script", "Error generating SQL script from changes", e);
    }
}
Also used : DBEPersistAction(org.jkiss.dbeaver.model.edit.DBEPersistAction) ArrayList(java.util.ArrayList) UIServiceSQL(org.jkiss.dbeaver.runtime.ui.UIServiceSQL)

Example 8 with UIServiceSQL

use of org.jkiss.dbeaver.runtime.ui.UIServiceSQL in project dbeaver by serge-rider.

the class PostgreFDWConfigWizardPageFinal method generateScript.

private void generateScript() {
    StringBuilder script = new StringBuilder();
    try {
        PostgreDataSource dataSource = getWizard().getDatabase().getDataSource();
        getWizard().getRunnableContext().run(true, true, monitor -> {
            try {
                DBExecUtils.tryExecuteRecover(monitor, dataSource, param -> {
                    try {
                        monitor.beginTask("Generate FDW script", 2);
                        monitor.subTask("Read actions");
                        List<DBEPersistAction> actions = getWizard().generateScript(monitor);
                        monitor.subTask("Generate script");
                        script.append(SQLUtils.generateScript(dataSource, actions.toArray(new DBEPersistAction[0]), false));
                        monitor.done();
                    } catch (DBException e) {
                        throw new InvocationTargetException(e);
                    }
                });
            } catch (DBException e) {
                throw new InvocationTargetException(e);
            }
        });
    } catch (InvocationTargetException e) {
        log.debug(e.getTargetException());
        setErrorMessage(e.getTargetException().getMessage());
        return;
    } catch (InterruptedException e) {
        return;
    }
    setErrorMessage(null);
    scriptText = script.toString();
    UIServiceSQL service = DBWorkbench.getService(UIServiceSQL.class);
    if (service != null) {
        service.setSQLPanelText(sqlPanel, scriptText);
    }
}
Also used : DBException(org.jkiss.dbeaver.DBException) PostgreDataSource(org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource) DBEPersistAction(org.jkiss.dbeaver.model.edit.DBEPersistAction) UIServiceSQL(org.jkiss.dbeaver.runtime.ui.UIServiceSQL) InvocationTargetException(java.lang.reflect.InvocationTargetException)

Example 9 with UIServiceSQL

use of org.jkiss.dbeaver.runtime.ui.UIServiceSQL in project dbeaver by serge-rider.

the class DashboardItemConfigDialog method createDialogArea.

@Override
protected Composite createDialogArea(Composite parent) {
    Composite composite = super.createDialogArea(parent);
    {
        Group infoGroup = UIUtils.createControlGroup(composite, UIDashboardMessages.dialog_dashboard_item_config_dashboardinfo, 4, GridData.FILL_HORIZONTAL, 0);
        // UIUtils.createLabelText(infoGroup, "ID", dashboardConfig.getDashboardDescriptor().getId(), SWT.BORDER | SWT.READ_ONLY);
        UIUtils.createLabelText(infoGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardinfo_labels_name, dashboardConfig.getDashboardDescriptor().getName(), SWT.BORDER | SWT.READ_ONLY).setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false, 3, 1));
        UIUtils.createControlLabel(infoGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardinfo_labels_description).setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
        Text descriptionText = new Text(infoGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
        descriptionText.setText(CommonUtils.notEmpty(dashboardConfig.getDescription()));
        descriptionText.addModifyListener(e -> {
            dashboardConfig.setDescription(descriptionText.getText());
        });
        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.widthHint = 200;
        gd.heightHint = 50;
        descriptionText.setLayoutData(gd);
        if (SHOW_QUERIES_BUTTON) {
            Composite btnGroup = UIUtils.createComposite(infoGroup, 1);
            btnGroup.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false, 4, 1));
            Button queriesButton = new Button(btnGroup, SWT.PUSH);
            queriesButton.setText(UIDashboardMessages.dialog_dashboard_item_config_buttons_sqlqueries);
            queriesButton.setImage(DBeaverIcons.getImage(UIIcon.SQL_SCRIPT));
            queriesButton.setLayoutData(new GridData(GridData.END, GridData.BEGINNING, true, false));
            queriesButton.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    StringBuilder sql = new StringBuilder();
                    for (DashboardDescriptor.QueryMapping query : dashboardConfig.getDashboardDescriptor().getQueries()) {
                        sql.append(query.getQueryText()).append(";\n");
                    }
                    UIServiceSQL serviceSQL = DBWorkbench.getService(UIServiceSQL.class);
                    if (serviceSQL != null) {
                        serviceSQL.openSQLViewer(DBUtils.getDefaultContext(dashboardContainer.getDataSourceContainer().getDataSource(), true), UIDashboardMessages.dialog_dashboard_item_config_buttons_sqlqueries_dash, UIIcon.SQL_SCRIPT, sql.toString(), false, false);
                    }
                }
            });
            queriesButton.setEnabled(dashboardContainer.getDataSourceContainer().isConnected());
        }
    }
    {
        Group updateGroup = UIUtils.createControlGroup(composite, UIDashboardMessages.dialog_dashboard_item_config_dashboardupdate, 2, GridData.FILL_HORIZONTAL, 0);
        Text updatePeriodText = UIUtils.createLabelText(updateGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardupdate_labels_updateperiod, String.valueOf(dashboardConfig.getUpdatePeriod()), SWT.BORDER, new GridData(GridData.FILL_HORIZONTAL));
        updatePeriodText.addModifyListener(e -> {
            dashboardConfig.setUpdatePeriod(CommonUtils.toLong(updatePeriodText.getText(), dashboardConfig.getUpdatePeriod()));
        });
        Text maxItemsText = UIUtils.createLabelText(updateGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardupdate_labels_maxitems, String.valueOf(dashboardConfig.getMaxItems()), SWT.BORDER, new GridData(GridData.FILL_HORIZONTAL));
        maxItemsText.addModifyListener(e -> {
            dashboardConfig.setMaxItems(CommonUtils.toInt(maxItemsText.getText(), dashboardConfig.getMaxItems()));
        });
    /*
            Text maxAgeText = UIUtils.createLabelText(updateGroup, "Maximum age (ISO-8601)", DashboardUtils.formatDuration(dashboardConfig.getMaxAge()), SWT.BORDER, new GridData(GridData.FILL_HORIZONTAL));
            maxAgeText.addModifyListener(e -> {
                dashboardConfig.setMaxAge(DashboardUtils.parseDuration(maxAgeText.getText(), dashboardConfig.getMaxAge()));
            });
*/
    }
    {
        Group viewGroup = UIUtils.createControlGroup(composite, UIDashboardMessages.dialog_dashboard_item_config_dashboardview, 2, GridData.FILL_HORIZONTAL, 0);
        Combo typeCombo = UIUtils.createLabelCombo(viewGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_combos_view, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_combos_view_tooltip, SWT.BORDER | SWT.READ_ONLY);
        typeCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        {
            List<DashboardViewType> viewTypes = DashboardRegistry.getInstance().getSupportedViewTypes(dashboardConfig.getDashboardDescriptor().getDataType());
            for (DashboardViewType viewType : viewTypes) {
                typeCombo.add(viewType.getTitle());
            }
            typeCombo.setText(dashboardConfig.getViewType().getTitle());
            typeCombo.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    dashboardConfig.setViewType(viewTypes.get(typeCombo.getSelectionIndex()));
                }
            });
        }
        UIUtils.createCheckbox(viewGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_legend, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_legend_tooltip, dashboardConfig.isLegendVisible(), 2).addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                dashboardConfig.setLegendVisible(((Button) e.widget).getSelection());
            }
        });
        UIUtils.createCheckbox(viewGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_grid, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_grid_tooltip, dashboardConfig.isGridVisible(), 2).addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                dashboardConfig.setGridVisible(((Button) e.widget).getSelection());
            }
        });
        UIUtils.createCheckbox(viewGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_domainaxis, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_domainaxis_tooltip, dashboardConfig.isDomainTicksVisible(), 2).addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                dashboardConfig.setDomainTicksVisible(((Button) e.widget).getSelection());
            }
        });
        UIUtils.createCheckbox(viewGroup, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_rangeaxis, UIDashboardMessages.dialog_dashboard_item_config_dashboardview_checkboxes_rangeaxis_tooltip, dashboardConfig.isDomainTicksVisible(), 2).addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                dashboardConfig.setRangeTicksVisible(((Button) e.widget).getSelection());
            }
        });
    /*
            Text widthRatioText = UIUtils.createLabelText(viewGroup, "Width ratio", String.valueOf(dashboardConfig.getWidthRatio()), SWT.BORDER, new GridData(GridData.FILL_HORIZONTAL));
            widthRatioText.addModifyListener(e -> {
                dashboardConfig.setWidthRatio((float) CommonUtils.toDouble(widthRatioText.getText(), dashboardConfig.getWidthRatio()));
            });
*/
    }
    return parent;
}
Also used : DBWorkbench(org.jkiss.dbeaver.runtime.DBWorkbench) DashboardContainer(org.jkiss.dbeaver.ui.dashboard.model.DashboardContainer) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) DashboardRegistry(org.jkiss.dbeaver.ui.dashboard.registry.DashboardRegistry) CommonUtils(org.jkiss.utils.CommonUtils) DashboardItemViewConfiguration(org.jkiss.dbeaver.ui.dashboard.model.DashboardItemViewConfiguration) UIDashboardMessages(org.jkiss.dbeaver.ui.dashboard.internal.UIDashboardMessages) NLS(org.eclipse.osgi.util.NLS) DBUtils(org.jkiss.dbeaver.model.DBUtils) org.eclipse.swt.widgets(org.eclipse.swt.widgets) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) UIServiceSQL(org.jkiss.dbeaver.runtime.ui.UIServiceSQL) DashboardViewConfiguration(org.jkiss.dbeaver.ui.dashboard.model.DashboardViewConfiguration) BaseDialog(org.jkiss.dbeaver.ui.dialogs.BaseDialog) List(java.util.List) DBeaverIcons(org.jkiss.dbeaver.ui.DBeaverIcons) UIUtils(org.jkiss.dbeaver.ui.UIUtils) DashboardDescriptor(org.jkiss.dbeaver.ui.dashboard.registry.DashboardDescriptor) SWT(org.eclipse.swt.SWT) UIIcon(org.jkiss.dbeaver.ui.UIIcon) SelectionEvent(org.eclipse.swt.events.SelectionEvent) GridData(org.eclipse.swt.layout.GridData) DashboardViewType(org.jkiss.dbeaver.ui.dashboard.model.DashboardViewType) DashboardViewType(org.jkiss.dbeaver.ui.dashboard.model.DashboardViewType) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) DashboardDescriptor(org.jkiss.dbeaver.ui.dashboard.registry.DashboardDescriptor) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) UIServiceSQL(org.jkiss.dbeaver.runtime.ui.UIServiceSQL)

Example 10 with UIServiceSQL

use of org.jkiss.dbeaver.runtime.ui.UIServiceSQL in project dbeaver by dbeaver.

the class ResultSetFilterPanel method openEditorForActiveQuery.

private void openEditorForActiveQuery() {
    DBSDataContainer dataContainer = viewer.getDataContainer();
    String editorName;
    if (dataContainer instanceof DBSEntity) {
        editorName = dataContainer.getName();
    } else {
        editorName = "Query";
    }
    UIServiceSQL serviceSQL = DBWorkbench.getService(UIServiceSQL.class);
    if (serviceSQL != null) {
        serviceSQL.openSQLConsole(dataContainer == null || dataContainer.getDataSource() == null ? null : dataContainer.getDataSource().getContainer(), viewer.getExecutionContext(), editorName, viewer.getActiveQueryText());
    }
}
Also used : DBSEntity(org.jkiss.dbeaver.model.struct.DBSEntity) UIServiceSQL(org.jkiss.dbeaver.runtime.ui.UIServiceSQL) DBSDataContainer(org.jkiss.dbeaver.model.struct.DBSDataContainer)

Aggregations

UIServiceSQL (org.jkiss.dbeaver.runtime.ui.UIServiceSQL)34 GridData (org.eclipse.swt.layout.GridData)12 DBException (org.jkiss.dbeaver.DBException)12 FillLayout (org.eclipse.swt.layout.FillLayout)10 DBEPersistAction (org.jkiss.dbeaver.model.edit.DBEPersistAction)10 InvocationTargetException (java.lang.reflect.InvocationTargetException)6 Composite (org.eclipse.swt.widgets.Composite)6 ArrayList (java.util.ArrayList)4 IDialogSettings (org.eclipse.jface.dialogs.IDialogSettings)4 TextViewer (org.eclipse.jface.text.TextViewer)4 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)4 StyledText (org.eclipse.swt.custom.StyledText)4 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)4 SelectionEvent (org.eclipse.swt.events.SelectionEvent)4 GridLayout (org.eclipse.swt.layout.GridLayout)4 DBSDataContainer (org.jkiss.dbeaver.model.struct.DBSDataContainer)3 File (java.io.File)2 IOException (java.io.IOException)2 SimpleDateFormat (java.text.SimpleDateFormat)2 Date (java.util.Date)2