breakpoints ui. xbreakpoints properties panel

This commit is contained in:
andrey.zaytsev
2012-05-15 17:51:36 +04:00
parent 7b1ee931f9
commit 371b345d31
6 changed files with 41 additions and 15 deletions
@@ -123,7 +123,7 @@ public abstract class BreakpointFactory {
BreakpointPropertiesPanel breakpointPropertiesPanel = createBreakpointPropertiesPanel(breakpoint.getProject(), false);
if (breakpointPropertiesPanel != null) {
breakpointPropertiesPanel.initFrom(breakpoint, false);
breakpointPropertiesPanel.initFrom(breakpoint, true);
final JPanel mainPanel = breakpointPropertiesPanel.getPanel();
panel.setDetailPanel(mainPanel);
}
@@ -119,6 +119,11 @@ public class BookmarksAction extends AnAction implements DumbAware, MasterDetail
return BookmarkManager.getInstance(project).hasBookmarksWithMnemonics();
}
@Override
public boolean allowedToRemoveItem(ItemWrapper item) {
return true;
}
protected static class BookmarkInContextInfo {
private final DataContext myDataContext;
private final Project myProject;
@@ -188,23 +188,26 @@ public class MasterDetailPopupBuilder {
for (Object value : values) {
ItemWrapper item = (ItemWrapper)value;
DefaultListModel model = myList.getModel() instanceof DefaultListModel ? (DefaultListModel)myList.getModel() :
(DefaultListModel)((FilteringListModel)myList.getModel()).getOriginalModel();
model.removeElement(item);
DefaultListModel model = myList.getModel() instanceof DefaultListModel
? (DefaultListModel)myList.getModel()
: (DefaultListModel)((FilteringListModel)myList.getModel()).getOriginalModel();
if (myDelegate.allowedToRemoveItem(item)) {
model.removeElement(item);
if (model.getSize() > 0) {
if (model.getSize() == index) {
myList.setSelectedIndex(model.getSize() - 1);
if (model.getSize() > 0) {
if (model.getSize() == index) {
myList.setSelectedIndex(model.getSize() - 1);
}
else if (model.getSize() > index) {
myList.setSelectedIndex(index);
}
}
else if (model.getSize() > index) {
myList.setSelectedIndex(index);
else {
myList.clearSelection();
}
}
else {
myList.clearSelection();
myDelegate.itemRemoved(item, myProject);
}
myDelegate.itemRemoved(item, myProject);
}
}
else if (e.getModifiersEx() == 0) {
@@ -238,6 +241,8 @@ public class MasterDetailPopupBuilder {
void itemRemoved(ItemWrapper item, Project project);
boolean hasItemsWithMnemonic(Project project);
boolean allowedToRemoveItem(ItemWrapper item);
}
public class ItemRenderer extends JPanel implements ListCellRenderer {
@@ -22,8 +22,8 @@ import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.XDebuggerManager;
import com.intellij.xdebugger.impl.actions.*;
import com.intellij.xdebugger.impl.actions.handlers.*;
import com.intellij.xdebugger.impl.breakpoints.XBreakpointPanelProvider;
import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointPanelProvider;
import com.intellij.xdebugger.impl.breakpoints.ui.XBreakpointPanelProvider;
import com.intellij.xdebugger.impl.evaluate.quick.XQuickEvaluateHandler;
import com.intellij.xdebugger.impl.evaluate.quick.common.QuickEvaluateHandler;
import com.intellij.xdebugger.impl.settings.DebuggerSettingsPanelProvider;
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.xdebugger.impl.breakpoints.ui;
package com.intellij.xdebugger.impl.breakpoints;
import com.intellij.openapi.editor.LogicalPosition;
import com.intellij.openapi.editor.markup.GutterIconRenderer;
@@ -33,6 +33,10 @@ import com.intellij.xdebugger.breakpoints.ui.BreakpointItem;
import com.intellij.xdebugger.impl.breakpoints.XBreakpointBase;
import com.intellij.xdebugger.impl.breakpoints.XBreakpointUtil;
import com.intellij.xdebugger.impl.breakpoints.XLineBreakpointImpl;
import com.intellij.xdebugger.impl.breakpoints.ui.AbstractBreakpointPanel;
import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointPanelProvider;
import com.intellij.xdebugger.impl.breakpoints.ui.XBreakpointPropertiesPanel;
import com.intellij.xdebugger.impl.breakpoints.ui.XBreakpointsPanel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -139,6 +143,13 @@ public class XBreakpointPanelProvider extends BreakpointPanelProvider<XBreakpoin
if (sourcePosition != null) {
panel.navigateInPreviewEditor(sourcePosition.getFile(), new LogicalPosition(sourcePosition.getLine(), sourcePosition.getOffset()));
}
Project project = ((XBreakpointBase)breakpoint).getProject();
XBreakpointPropertiesPanel<XBreakpoint<?>> propertiesPanel =
new XBreakpointPropertiesPanel<XBreakpoint<?>>(project, ((XBreakpointBase)breakpoint).getBreakpointManager(), breakpoint);
panel.setDetailPanel(propertiesPanel.getMainPanel());
}
};
}
@@ -90,6 +90,11 @@ public class BreakpointsMasterDetailPopupFactory {
public boolean hasItemsWithMnemonic(Project project) {
return false;
}
@Override
public boolean allowedToRemoveItem(ItemWrapper item) {
return false;
}
}).createMasterDetailPopup();
return popup;