提交 a63081e5 编写于 作者: S serge-rider

#3507 Grouping panel - context menu, i18n


Former-commit-id: 7d7a1021
上级 5d5f706d
......@@ -265,6 +265,10 @@ public class CoreMessages extends NLS {
public static String controls_resultset_filter_title;
public static String controls_resultset_filter_warning_custom_order_disabled;
public static String controls_resultset_grouping_edit;
public static String controls_resultset_grouping_remove_column;
public static String controls_resultset_grouping_clear;
public static String controls_resultset_viewer_action_edit;
public static String controls_resultset_viewer_action_order_filter;
public static String controls_resultset_viewer_action_custom_filter;
......
......@@ -247,6 +247,10 @@ controls_resultset_filter_label_orderby = Order by
controls_resultset_filter_label_where = Where
controls_resultset_filter_title = Result Set Order/Filter Settings
controls_resultset_filter_warning_custom_order_disabled = Data filters and custom orderings are disabled for custom queries
controls_resultset_grouping_edit = Edit grouping columns
controls_resultset_grouping_remove_column = Remove grouping column
controls_resultset_grouping_clear = Clear grouping
controls_resultset_viewer_action_custom_filter = Advanced ...
controls_resultset_viewer_action_edit = Edit ...
#controls_resultset_viewer_action_export = Export Resultset ...
......
......@@ -17,6 +17,8 @@
package org.jkiss.dbeaver.ui.controls.resultset;
import org.eclipse.jface.action.IContributionManager;
/**
* ResultSet decorator.
*/
......@@ -34,5 +36,7 @@ public interface IResultSetDecorator {
String getEmptyDataDescription();
void fillContributions(IContributionManager contributionManager);
void registerDragAndDrop(IResultSetPresentation presentation);
}
......@@ -16,6 +16,7 @@
*/
package org.jkiss.dbeaver.ui.controls.resultset;
import org.eclipse.jface.action.IContributionManager;
import org.jkiss.dbeaver.core.CoreMessages;
/**
......@@ -38,6 +39,11 @@ public class QueryResultsDecorator implements IResultSetDecorator {
return null;
}
@Override
public void fillContributions(IContributionManager contributionManager) {
}
@Override
public void registerDragAndDrop(IResultSetPresentation presentation) {
// No specific DnD handling
......
......@@ -158,7 +158,7 @@ public class ResultSetCommandHandler extends AbstractHandler {
rsv.toggleMode();
break;
case CMD_TOGGLE_PANELS:
rsv.showPanels(!rsv.isPanelsVisible());
rsv.showPanels(!rsv.isPanelsVisible(), true);
break;
case CMD_FOCUS_FILTER:
rsv.switchFilterFocus();
......
......@@ -266,7 +266,7 @@ public class ResultSetViewer extends Viewer
@Override
public void minimize(CTabFolderEvent event) {
showPanels(false);
showPanels(false, true);
}
@Override
......@@ -619,7 +619,7 @@ public class ResultSetViewer extends Viewer
}
activateDefaultPanels(settings);
}
showPanels(panelsVisible);
showPanels(panelsVisible, false);
viewerSash.setWeights(panelWeights);
}
......@@ -760,7 +760,7 @@ public class ResultSetViewer extends Viewer
return;
}
if (showPanels && !isPanelsVisible()) {
showPanels(true);
showPanels(true, false);
}
PresentationSettings presentationSettings = getPresentationSettings();
......@@ -849,6 +849,7 @@ public class ResultSetViewer extends Viewer
if (panel != null) {
panel.activatePanel();
updatePanelActions();
savePresentationSettings();
}
}
......@@ -859,7 +860,7 @@ public class ResultSetViewer extends Viewer
}
getPresentationSettings().enabledPanelIds.remove(panelId);
if (activePanels.isEmpty()) {
showPanels(false);
showPanels(false, true);
}
}
......@@ -887,7 +888,7 @@ public class ResultSetViewer extends Viewer
return viewerSash != null && viewerSash.getMaximizedControl() == null;
}
void showPanels(boolean show) {
void showPanels(boolean show, boolean saveSettings) {
if (!supportsPanels() || show == isPanelsVisible()) {
return;
}
......@@ -913,7 +914,9 @@ public class ResultSetViewer extends Viewer
}
getPresentationSettings().panelsVisible = show;
savePresentationSettings();
if (saveSettings) {
savePresentationSettings();
}
}
private List<IContributionItem> fillPanelsMenu() {
......@@ -1943,9 +1946,10 @@ public class ResultSetViewer extends Viewer
manager.add(ActionUtils.makeCommandContribution(site, IWorkbenchCommandConstants.FILE_REFRESH));
}
if (supportsPanels())
manager.add(new Separator());
manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
decorator.fillContributions(manager);
}
@Nullable
......
......@@ -22,12 +22,13 @@ import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.ISharedImages;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
import org.jkiss.dbeaver.model.data.DBDAttributeBinding;
import org.jkiss.dbeaver.runtime.ui.DBUserInterface;
......@@ -45,7 +46,7 @@ import java.util.List;
*/
public class GroupingPanel implements IResultSetPanel {
private static final Log log = Log.getLog(GroupingPanel.class);
//private static final Log log = Log.getLog(GroupingPanel.class);
public static final String PANEL_ID = "results-grouping";
......@@ -148,20 +149,29 @@ public class GroupingPanel implements IResultSetPanel {
private void fillToolBar(IContributionManager contributionManager)
{
contributionManager.add(new AddColumnAction());
contributionManager.add(new EditColumnsAction(resultsContainer));
contributionManager.add(new Separator());
contributionManager.add(new DeleteColumnAction());
contributionManager.add(new ClearGroupingAction());
contributionManager.add(new DeleteColumnAction(resultsContainer));
contributionManager.add(new ClearGroupingAction(resultsContainer));
}
private class AddColumnAction extends Action {
public AddColumnAction() {
super("Configure columns", DBeaverIcons.getImageDescriptor(UIIcon.OBJ_ADD));
abstract static class GroupingAction extends Action {
protected final GroupingResultsContainer resultsContainer;
public GroupingAction(GroupingResultsContainer resultsContainer, String text, ImageDescriptor image) {
super(text, image);
this.resultsContainer = resultsContainer;
}
}
static class EditColumnsAction extends GroupingAction {
public EditColumnsAction(GroupingResultsContainer resultsContainer) {
super(resultsContainer, CoreMessages.controls_resultset_grouping_edit, DBeaverIcons.getImageDescriptor(UIIcon.OBJ_ADD));
}
@Override
public void run() {
GroupingConfigDialog dialog = new GroupingConfigDialog(presentation.getControl().getShell(), resultsContainer);
GroupingConfigDialog dialog = new GroupingConfigDialog(resultsContainer.getResultSetController().getControl().getShell(), resultsContainer);
if (dialog.open() == IDialogConstants.OK_ID) {
try {
resultsContainer.rebuildGrouping();
......@@ -172,9 +182,9 @@ public class GroupingPanel implements IResultSetPanel {
}
}
private class DeleteColumnAction extends Action {
public DeleteColumnAction() {
super("Delete column", DBeaverIcons.getImageDescriptor(UIIcon.ACTION_OBJECT_DELETE));
static class DeleteColumnAction extends GroupingAction {
public DeleteColumnAction(GroupingResultsContainer resultsContainer) {
super(resultsContainer, CoreMessages.controls_resultset_grouping_remove_column, DBeaverIcons.getImageDescriptor(UIIcon.ACTION_OBJECT_DELETE));
}
@Override
......@@ -198,9 +208,9 @@ public class GroupingPanel implements IResultSetPanel {
}
}
private class ClearGroupingAction extends Action {
public ClearGroupingAction() {
super("Clear groupings", UIUtils.getShardImageDescriptor(ISharedImages.IMG_ETOOL_CLEAR));
static class ClearGroupingAction extends GroupingAction {
public ClearGroupingAction(GroupingResultsContainer resultsContainer) {
super(resultsContainer, CoreMessages.controls_resultset_grouping_clear, UIUtils.getShardImageDescriptor(ISharedImages.IMG_ETOOL_CLEAR));
}
@Override
......@@ -211,7 +221,7 @@ public class GroupingPanel implements IResultSetPanel {
@Override
public void run() {
resultsContainer.clearGrouping();
updateControls();
resultsContainer.getOwnerPresentation().getController().updatePanelActions();
}
}
......
......@@ -16,6 +16,7 @@
*/
package org.jkiss.dbeaver.ui.controls.resultset.panel.grouping;
import org.eclipse.jface.action.IContributionManager;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
......@@ -59,6 +60,13 @@ public class GroupingResultsDecorator implements IResultSetDecorator {
return "Drag-and-drop results column(s) here to create grouping\nPress CONTROL to configure grouping settings";
}
@Override
public void fillContributions(IContributionManager contributionManager) {
contributionManager.add(new GroupingPanel.EditColumnsAction(container));
contributionManager.add(new GroupingPanel.DeleteColumnAction(container));
contributionManager.add(new GroupingPanel.ClearGroupingAction(container));
}
@Override
public void registerDragAndDrop(IResultSetPresentation presentation) {
// Register drop target to accept columns dropping
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册