diff --git a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/DBeaverApplication.java b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/DBeaverApplication.java index 245b9fc76237c571031a26cab4b0a3eab632ab9f..0eb99ac20b9b4490a62f8ff2b6262566b1e1a91a 100644 --- a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/DBeaverApplication.java +++ b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/DBeaverApplication.java @@ -93,20 +93,11 @@ public class DBeaverApplication implements IApplication // Error may occur if -data parameter was specified at startup System.err.println("Can't switch workspace to '" + defaultHomePath + "' - " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ } -/* - try { - if (instanceLoc.isLocked()) { - System.out.println("LOCKED!"); - } - } catch (IOException e) { - e.printStackTrace(); - } -*/ + DBeaverCore.setStandalone(true); System.out.println(DBeaverCore.getProductTitle() + " is starting"); //$NON-NLS-1$ System.out.println("Install path: '" + Platform.getInstallLocation().getURL() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ System.out.println("Instance path: '" + instanceLoc.getURL() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ -// System.out.println("Workspace path: '" + DBeaverCore.getInstance().getWorkspace().getRoot().getLocation() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ PlatformUI.getPreferenceStore().setDefault( IWorkbenchPreferenceConstants.KEY_CONFIGURATION_ID, diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IBreadcrumbsNavigator.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IBreadcrumbsNavigator.java new file mode 100644 index 0000000000000000000000000000000000000000..578e993e5f29c2b1bbf5f35a820576d09b7713c2 --- /dev/null +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IBreadcrumbsNavigator.java @@ -0,0 +1,31 @@ +/* + * DBeaver - Universal Database Manager + * Copyright (C) 2010-2015 Serge Rieder (serge@jkiss.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License (version 2) + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.jkiss.dbeaver.ui; + +import org.eclipse.jface.action.IAction; + +import java.util.Collection; + +/** + * IBreadcrumbsNavigator + */ +public interface IBreadcrumbsNavigator +{ + void updateBreadcrumbs(Collection actions); + +} \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectRename.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectRename.java index 1e25698f98a415c404274a07d23f7a9349631c56..748edc63ff9152d41257d63424bba1baf12f3886 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectRename.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectRename.java @@ -120,7 +120,7 @@ public class NavigatorHandlerObjectRename extends NavigatorHandlerObjectBase { } } else { for (DBECommand command : commandTarget.getContext().getFinalCommands()) { - System.out.println(command); + //System.out.println(command); } } return true; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderComposite.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderComposite.java index 0c73a95e1385c16ba689ec9c8a295ef35e484abb..e2bb8b87ab445e6f14cbfe39ccf83bd2bf5b46e6 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderComposite.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderComposite.java @@ -108,7 +108,6 @@ public class FolderComposite extends Composite implements IFolderContainer { e.doit = false; return; } - //System.out.println(shift + " " + e.detail); if (Math.abs(shift) > 0) { FolderComposite.this.setRedraw(false); try { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderList.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderList.java index 0e90d786f1fe4c3eebefee42660c101f8b2b6f2f..b2aedd9657c910176c5b0c1c39f966c0742aef55 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderList.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/folders/FolderList.java @@ -713,28 +713,6 @@ public class FolderList extends Composite { ColorRegistry colorRegistry = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry(); -/* - Map colors = new TreeMap(); - for (String id : colorRegistry.getKeySet()) { - colors.put(id, colorRegistry.get(id)); - } - System.out.println("=============================="); - for (Map.Entry e : colors.entrySet()) { - System.out.println(e.getKey() + "=" + e.getValue()); - } -*/ - -/* - listBackground = JFaceResources.getColorRegistry().get(JFacePreferences.CONTENT_ASSIST_BACKGROUND_COLOR); - widgetBackground = getBackground(); - widgetDarkShadow = display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW); - widgetForeground = getForeground(); - widgetNormalShadow = display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW); - - RGB infoBackground = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB(); - RGB white = JFaceResources.getColorRegistry().get(JFacePreferences.CONTENT_ASSIST_BACKGROUND_COLOR).getRGB(); - RGB black = colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_TEXT_COLOR).getRGB(); -*/ listBackground = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND); widgetBackground = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND); widgetDarkShadow = display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW); @@ -912,7 +890,6 @@ public class FolderList extends Composite { Canvas nextElement = topNavigationElement; for (int i = 0; i < elements.length; i++) { - //System.out.print(i + " [" + elements[i].getText() + "]"); if (i < topVisibleIndex || i > bottomVisibleIndex) { /* * this tab is not visible @@ -923,7 +900,6 @@ public class FolderList extends Composite { /* * this tab is visible. */ - //System.out.print(" visible"); formData = new FormData(); formData.height = getTabHeight(); formData.left = new FormAttachment(0, 0); @@ -933,11 +909,6 @@ public class FolderList extends Composite { elements[i].setLayoutData(formData); elements[i].setVisible(true); } - - //if (i == selectedElementIndex) { - // System.out.print(" selected"); - //} - //System.out.println(""); } formData = new FormData(); formData.left = new FormAttachment(0, 0); @@ -947,7 +918,6 @@ public class FolderList extends Composite { formData.height = 10; bottomNavigationElement.setLayoutData(formData); } - //System.out.println(""); // layout so that we have enough space for the new labels Composite grandparent = getParent().getParent(); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java index f2356ce373cf9345e33008921be7f451ae0d6972..dad18942fc26986af50998423373b3cc9170cb3c 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java @@ -226,7 +226,6 @@ public class ItemListControl extends NodeListControl final ObjectPropertyDescriptor property = getObjectProperty(object, columnIndex); if (property != null) { getListPropertySource().setPropertyValue(getObjectValue(object), property, value); - //System.out.println("UPDATE " + value + " " + System.currentTimeMillis()); if (value instanceof Boolean) { // Redraw control to let it repaint checkbox getItemsViewer().getControl().redraw(); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java index 64f8eb546883fce16fc4ed27e99ad0294989d178..f229d3ca411250ac964955e79e07455d1948bf01 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java @@ -538,7 +538,6 @@ public abstract class ObjectListControl extends ProgressPageControl if (objectColumns == null) { objectColumns = new ArrayList<>(); lazyObjects.put(object, objectColumns); - //System.out.println("LAZY: " + object); } if (!objectColumns.contains(column)) { objectColumns.add(column); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java index 980aeb34fcf36d0eeb21ec73fd7a99ecaf2a3790..d3eafb44d21dc3c99a15ed7e056a002e9182b51b 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java @@ -1879,7 +1879,6 @@ public abstract class LightGrid extends Canvas { } } else if (x <= rowHeaderWidth) { // Hover in row header - //System.out.println("HEY " + x + " " + y); } if (overSorter != hoveringOnColumnSorter) { if (overSorter) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java index a527e6150529a54df4ab24e6c08dd0ff42d19dd2..f88e0d880e49e4d325a80cfd4ad4fc95d508ff18 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java @@ -110,11 +110,6 @@ public class ResultSetPropertyTester extends PropertyTester public static void firePropertyChange(String propName) { ActionUtils.evaluatePropertyState(NAMESPACE + "." + propName); -// ICommandService commandService = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class); -// if (commandService != null) { -// commandService.refreshElements(NAMESPACE + "." + propName, null); -// System.out.println("REFRESH " + NAMESPACE + "." + propName); -// } } } \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java index de6746e337401e47203b1772da49e1a896d4c6bf..4c65971328d81914817728d02fbe89ace37cb5b8 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java @@ -39,10 +39,7 @@ import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; -import org.eclipse.ui.ISaveablePart2; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.IWorkbenchCommandConstants; -import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.*; import org.eclipse.ui.commands.ICommandService; import org.eclipse.ui.menus.CommandContributionItem; import org.jkiss.code.NotNull; @@ -427,12 +424,19 @@ public class ResultSetViewer extends Viewer } else { historyForwardButton.setEnabled(false); } + updateBreadcrumbs(); } else if (filtersEnableState == null) { filtersEnableState = ControlEnableState.disable(filtersPanel); } presentationSwitchCombo.combo.setEnabled(enableFilters); } + private void updateBreadcrumbs() { + IWorkbenchPart ownerPart = getSite().getPart(); + + System.out.println(1); + } + private void addFiltersHistory(String whereCondition) { int historyCount = filtersText.getItemCount(); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/DisplayedContent.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/DisplayedContent.java index 0d44f4de3d1a92e0f3160d1888dafb276e896c9e..337e13cfcdc8b579ea88d6b0cbcc0b24a14f167f 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/DisplayedContent.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/DisplayedContent.java @@ -191,8 +191,6 @@ public class DisplayedContent implements StyledTextContent { for (TextChangeListener myTextListener : textListeners) myTextListener.textChanging(event); data.insert(event.start, text); -//System.out.print("Event1:start:"+event.start+", newCCount:"+event.newCharCount+", newLCount:"+ -//event.newLineCount+" ");System.out.flush(); TextChangedEvent changedEvent = new TextChangedEvent(this); for (TextChangeListener myTextListener : textListeners) myTextListener.textChanged(changedEvent); @@ -212,8 +210,6 @@ public class DisplayedContent implements StyledTextContent { data.delete(linesTimesColumns, linesTimesColumns + event.replaceCharCount); else data.delete(0, event.replaceCharCount); -//System.out.println("Event2:start:"+event.start+", replaceCCount:"+event.replaceCharCount+ -//", replaceLCount:"+event.replaceLineCount+", text:"+text);System.out.flush(); changedEvent = new TextChangedEvent(this); for (TextChangeListener myTextListener : textListeners) myTextListener.textChanged(changedEvent); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/EntityEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/EntityEditor.java index d615a139a0d24b3153de78a81730cdd55ad56b1f..2424b212f33f2dff6e38b4e3b8a0ba5b7cffb123 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/EntityEditor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/EntityEditor.java @@ -18,6 +18,7 @@ package org.jkiss.dbeaver.ui.editors.entity; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -32,9 +33,9 @@ import org.eclipse.ui.*; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBeaverPreferences; +import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.core.DBeaverUI; -import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPObject; import org.jkiss.dbeaver.model.DBUtils; @@ -64,7 +65,6 @@ import org.jkiss.dbeaver.ui.editors.DatabaseEditorInput; import org.jkiss.dbeaver.ui.editors.ErrorEditorInput; import org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput; import org.jkiss.dbeaver.ui.editors.MultiPageDatabaseEditor; -import org.jkiss.dbeaver.ui.navigator.NavigatorUtils; import org.jkiss.utils.CommonUtils; import java.lang.reflect.InvocationTargetException; @@ -74,9 +74,10 @@ import java.util.*; * EntityEditor */ public class EntityEditor extends MultiPageDatabaseEditor - implements IPropertyChangeReflector, IProgressControlProvider, ISaveablePart2, IFolderContainer + implements IPropertyChangeReflector, IProgressControlProvider, IBreadcrumbsNavigator, ISaveablePart2, IFolderContainer { static final Log log = Log.getLog(EntityEditor.class); + private Composite breadcrumbsPanel; private static class EditorDefaults { String pageId; @@ -818,10 +819,22 @@ public class EntityEditor extends MultiPageDatabaseEditor @Override protected Control createTopRightControl(Composite composite) { // Path - Composite infoGroup = new Composite(composite, SWT.NONE);//createControlGroup(container, "Path", 3, GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING, 0); - infoGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - infoGroup.setLayout(new RowLayout()); + breadcrumbsPanel = new Composite(composite, SWT.NONE); + breadcrumbsPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + breadcrumbsPanel.setLayout(new RowLayout()); + + updateBreadcrumbsPanel(null); + + return breadcrumbsPanel; + } + + private void updateBreadcrumbsPanel(Collection breadcrumbs) { + // Cleanup previous + for (Control child : breadcrumbsPanel.getChildren()) { + child.dispose(); + } + // Make base node path DBNDatabaseNode node = getEditorInput().getNavigatorNode(); List nodeList = new ArrayList<>(); @@ -832,11 +845,11 @@ public class EntityEditor extends MultiPageDatabaseEditor } for (final DBNDatabaseNode databaseNode : nodeList) { createPathRow( - infoGroup, + breadcrumbsPanel, databaseNode.getNodeIconDefault(), databaseNode.getNodeType(), databaseNode.getNodeName(), - databaseNode == node ? null : new SelectionAdapter() { + databaseNode == node && CommonUtils.isEmpty(breadcrumbs) ? null : new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -844,16 +857,13 @@ public class EntityEditor extends MultiPageDatabaseEditor } }); } - return infoGroup; } private void createPathRow(Composite infoGroup, DBPImage image, String label, String value, @Nullable SelectionListener selectionListener) { UIUtils.createImageLabel(infoGroup, image); - //UIUtils.createControlLabel(infoGroup, label); Link objectLink = new Link(infoGroup, SWT.NONE); - //objectLink.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); if (selectionListener == null) { objectLink.setText(value); objectLink.setToolTipText(label); @@ -864,25 +874,10 @@ public class EntityEditor extends MultiPageDatabaseEditor } } -/* - @Override - public DBNNode getRootNode() { - return getEditorInput().getNavigatorNode(); - } - - @Nullable @Override - public Viewer getNavigatorViewer() - { - IWorkbenchPart activePart = getActiveEditor(); - if (activePart instanceof INavigatorModelView) { - return ((INavigatorModelView)activePart).getNavigatorViewer(); - } else if (getActiveFolder() instanceof INavigatorModelView) { - return ((INavigatorModelView)getActiveFolder()).getNavigatorViewer(); - } - return null; + public void updateBreadcrumbs(Collection actions) { + updateBreadcrumbsPanel(actions); } -*/ private class ChangesPreviewer implements Runnable { diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/layout/algorithm/direct/ClusterEdgeCreator.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/layout/algorithm/direct/ClusterEdgeCreator.java index 573218b26c1c2d8b6af89b4489390a02bea607f8..ab0314948a92a1cadef235234a0eb66ac6b52260 100644 --- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/layout/algorithm/direct/ClusterEdgeCreator.java +++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/layout/algorithm/direct/ClusterEdgeCreator.java @@ -72,25 +72,20 @@ public class ClusterEdgeCreator { encountered.add(node); currentCluster.set.add(node); - //System.out.println("Adding to NEW cluster: " + node + ", cluster: " + currentCluster); // recursively add any other nodes reachable from it int depth = INITIAL_RECURSION_DEPTH; recursivelyAddToCluster(node, depth); - } else { - //System.out.println("Already encountered: " + node); } } - //System.out.println("Clusters: "); +/* for (Iterator iter = clusters.iterator(); iter.hasNext();) { Cluster cluster = iter.next(); - //System.out.println(cluster); - } +*/ coalesceRemainingClusters(); - //System.out.println(""); joinClusters(); } @@ -148,10 +143,7 @@ public class ClusterEdgeCreator { if (!encountered.contains(incomingNode)) { encountered.add(incomingNode); currentCluster.set.add(incomingNode); - //System.out.println("Adding to current cluster: " + incomingNode + ", cluster: " + currentCluster); recursivelyAddToCluster(incomingNode, depth); - } else { - //System.out.println("Already encountered: " + incomingNode); } } @@ -163,10 +155,7 @@ public class ClusterEdgeCreator { if (!encountered.contains(outgoingNode)) { encountered.add(outgoingNode); currentCluster.set.add(outgoingNode); - //System.out.println("Adding to current cluster: " + outgoingNode + ", cluster: " + currentCluster); recursivelyAddToCluster(outgoingNode, depth); - } else { - //System.out.println("Already encountered: " + outgoingNode); } } }