提交 570b2897 编写于 作者: N Nikita Akilov

#11895 add display format option to stream consumer settings

上级 e4fb9f6a
......@@ -53,6 +53,7 @@ import org.jkiss.dbeaver.ui.SharedTextColors;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.CustomComboBoxCellEditor;
import org.jkiss.dbeaver.ui.controls.TreeContentProvider;
import org.jkiss.dbeaver.ui.controls.ValueFormatSelector;
import org.jkiss.dbeaver.ui.dialogs.ActiveWizardPage;
import org.jkiss.dbeaver.ui.dialogs.BaseDialog;
import org.jkiss.dbeaver.ui.properties.PropertyTreeViewer;
......@@ -81,6 +82,7 @@ public class StreamConsumerPageSettings extends ActiveWizardPage<DataTransferWiz
private Combo lobEncodingCombo;
private Combo formatProfilesCombo;
private PropertySourceCustom propertySource;
private ValueFormatSelector valueFormatSelector;
public StreamConsumerPageSettings() {
super(DTMessages.data_transfer_wizard_settings_name);
......@@ -179,6 +181,15 @@ public class StreamConsumerPageSettings extends ActiveWizardPage<DataTransferWiz
}
});
valueFormatSelector = new ValueFormatSelector(generalSettings);
valueFormatSelector.select(settings.getValueFormat());
valueFormatSelector.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
settings.setValueFormat(valueFormatSelector.getSelection());
}
});
{
Composite columnsPanel = UIUtils.createComposite(generalSettings, 5);
columnsPanel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 5, 1));
......
......@@ -21,9 +21,9 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.DBDDataFormatterProfile;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import org.jkiss.dbeaver.model.data.json.JSONUtils;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.runtime.DBWorkbench;
......@@ -60,7 +60,8 @@ public class StreamConsumerSettings implements IDataTransferSettings {
public static final String PROP_EXTRACT_IMAGES = "extractImages";
public static final String PROP_FILE_EXTENSION = "extension";
public static final String PROP_FORMAT = "format";
private static final String SETTING_VALUE_FORMAT = "valueFormat"; //$NON-NLS-1$
private LobExtractType lobExtractType = LobExtractType.SKIP;
private LobEncoding lobEncoding = LobEncoding.HEX;
......@@ -72,6 +73,8 @@ public class StreamConsumerSettings implements IDataTransferSettings {
private String outputTimestampPattern = GeneralUtils.DEFAULT_TIMESTAMP_PATTERN;
private DBDDataFormatterProfile formatterProfile;
@NotNull
private DBDDisplayFormat valueFormat = DBDDisplayFormat.UI;
private boolean outputClipboard = false;
private boolean useSingleFile = false;
......@@ -253,6 +256,7 @@ public class StreamConsumerSettings implements IDataTransferSettings {
if (!CommonUtils.isEmpty(formatterProfile)) {
this.formatterProfile = DBWorkbench.getPlatform().getDataFormatterRegistry().getCustomProfile(formatterProfile);
}
valueFormat = DBDDisplayFormat.safeValueOf(CommonUtils.toString(settings.get(SETTING_VALUE_FORMAT)));
final Map<String, Object> mappings = JSONUtils.getObjectOrNull(settings, "mappings");
if (mappings != null && !mappings.isEmpty()) {
......@@ -313,6 +317,7 @@ public class StreamConsumerSettings implements IDataTransferSettings {
} else {
settings.put("formatterProfile", "");
}
settings.put(SETTING_VALUE_FORMAT, valueFormat.name());
if (!dataMappings.isEmpty()) {
final Map<String, Object> mappings = new LinkedHashMap<>();
......@@ -354,4 +359,12 @@ public class StreamConsumerSettings implements IDataTransferSettings {
return summary.toString();
}
@NotNull
public DBDDisplayFormat getValueFormat() {
return valueFormat;
}
public void setValueFormat(@NotNull DBDDisplayFormat valueFormat) {
this.valueFormat = valueFormat;
}
}
......@@ -69,6 +69,7 @@ public class StreamTransferConsumer implements IDataTransferConsumer<StreamConsu
private static final Log log = Log.getLog(StreamTransferConsumer.class);
private static final String LOB_DIRECTORY_NAME = "files"; //$NON-NLS-1$
private static final String PROP_FORMAT = "format"; //$NON-NLS-1$
public static final String VARIABLE_DATASOURCE = "datasource";
public static final String VARIABLE_CATALOG = "catalog";
......@@ -613,12 +614,11 @@ public class StreamTransferConsumer implements IDataTransferConsumer<StreamConsu
@Override
public DBDDisplayFormat getExportFormat() {
DBDDisplayFormat format = DBDDisplayFormat.UI;
Object formatProp = processorProperties.get(StreamConsumerSettings.PROP_FORMAT);
Object formatProp = processorProperties.get(PROP_FORMAT);
if (formatProp != null) {
format = DBDDisplayFormat.valueOf(formatProp.toString().toUpperCase(Locale.ENGLISH));
return DBDDisplayFormat.valueOf(formatProp.toString().toUpperCase(Locale.ENGLISH));
}
return format;
return settings.getValueFormat();
}
@Override
......
......@@ -29,10 +29,10 @@ import org.eclipse.ui.menus.UIElement;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import org.jkiss.dbeaver.ui.IActionConstants;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.ValueFormatSelector;
import org.jkiss.dbeaver.ui.controls.resultset.IResultSetController;
import org.jkiss.dbeaver.ui.controls.resultset.ResultSetCopySettings;
import org.jkiss.dbeaver.ui.controls.resultset.ResultSetUtils;
import org.jkiss.dbeaver.ui.controls.resultset.ValueFormatSelector;
import org.jkiss.dbeaver.ui.controls.resultset.internal.ResultSetMessages;
import org.jkiss.utils.CommonUtils;
......
......@@ -284,11 +284,6 @@ public class ResultSetMessages extends NLS {
public static String pref_page_database_general_use_column_names;
public static String pref_page_database_general_use_column_names_tip;
public static String value_format_selector_database_native;
public static String value_format_selector_display;
public static String value_format_selector_editable;
public static String value_format_selector_value;
public static String dialog_text_check_box_record;
public static String results_decorator_drag_and_drop_results_column;
......
......@@ -24,8 +24,8 @@ import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.ValueFormatSelector;
import org.jkiss.dbeaver.ui.controls.resultset.ResultSetPreferences;
import org.jkiss.dbeaver.ui.controls.resultset.ValueFormatSelector;
import org.jkiss.dbeaver.ui.editors.data.internal.DataEditorsMessages;
import org.jkiss.dbeaver.ui.preferences.TargetPrefPage;
import org.jkiss.dbeaver.utils.PrefUtils;
......
......@@ -14,29 +14,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.controls.resultset;
package org.jkiss.dbeaver.ui.controls;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.resultset.internal.ResultSetMessages;
import org.jkiss.dbeaver.ui.internal.UIMessages;
/**
* ValueFormatSelector
*/
public class ValueFormatSelector {
private final Combo formatCombo;
public ValueFormatSelector(@NotNull Composite parent) {
UIUtils.createControlLabel(parent, ResultSetMessages.value_format_selector_value);
UIUtils.createControlLabel(parent, UIMessages.value_format_selector_value);
formatCombo = new Combo(parent, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
formatCombo.add(ResultSetMessages.value_format_selector_display);
formatCombo.add(ResultSetMessages.value_format_selector_editable);
formatCombo.add(ResultSetMessages.value_format_selector_database_native);
formatCombo.add(UIMessages.value_format_selector_display);
formatCombo.add(UIMessages.value_format_selector_editable);
formatCombo.add(UIMessages.value_format_selector_database_native);
}
public void select(@NotNull DBDDisplayFormat format) {
......@@ -52,4 +49,7 @@ public class ValueFormatSelector {
}
}
public void addSelectionListener(@NotNull SelectionListener selectionListener) {
formatCombo.addSelectionListener(selectionListener);
}
}
......@@ -77,6 +77,11 @@ public class UIMessages extends NLS {
public static String control_label_connection_folder;
public static String value_format_selector_value;
public static String value_format_selector_display;
public static String value_format_selector_editable;
public static String value_format_selector_database_native;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, UIMessages.class);
......
......@@ -50,3 +50,8 @@ save_execution_plan = Save execution plan
load_execution_plan = Load execution plan
control_label_connection_folder = Connection folder
value_format_selector_database_native = Database native
value_format_selector_display = Display (default)
value_format_selector_editable = Editable
value_format_selector_value = Value Format
......@@ -43,3 +43,8 @@ ui_properties_name=\u0418\u043C\u044F
ui_properties_value=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435
control_label_connection_folder = \u041F\u0430\u043F\u043A\u0430 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F
value_format_selector_database_native = \u0424\u043E\u0440\u043C\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0411\u0414
value_format_selector_display = \u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E)
value_format_selector_editable = \u041F\u0440\u043E\u0441\u0442\u043E\u0439
value_format_selector_value = \u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册