gpt4 book ai didi

java - Eclipse - 自定义启动配置 - 应用/恢复按钮

转载 作者:行者123 更新时间:2023-11-30 03:11:34 26 4
gpt4 key购买 nike

我正在创建自定义启动配置类型。我实现了启动配置选项卡并遇到了奇怪的问题。当我执行以下操作时

private void update() {
setDirty(true);
updateLaunchConfigurationDialog();
}

在我的启动配置选项卡类的一处,它工作正常并且“应用”按钮被启用。但是当我在另一个地方这样做时,它不起作用。我在 https://www.eclipse.org/forums/index.php/t/164755/ 找到了类似的东西,但这并没有帮助我解决这个问题。

请参阅下面的代码片段。

    addButton.addMouseListener(new MouseListenerAdapter() {

@Override
public void mouseDown(MouseEvent e) {
moveSelectionToTableViewer(tree.getViewer().getTree().getSelection());
table.refresh();
update(); // Apply button is enabled
}

private void moveSelectionToTableViewer(TreeItem[] selection) {
// ...
}
});

removeButton.addMouseListener(new MouseListenerAdapter() {

@Override
public void mouseDown(MouseEvent e) {
int[] selectionIndices = table.getTable().getSelectionIndices();
table.getTable().remove(selectionIndices);
tree.getViewer().refresh();
update(); // Apply button is NOT enabled!
}
});

我该如何解决这个问题?

最佳答案

仅从这些信息中我无法得知您的问题,但只需检查几件事:

  1. 您是否已验证是否正在调用 setDirty(true)(例如使用 println 或断点?)
  2. 您是否在 org.eclipse.debug.ui.AbstractLaunchConfigurationTab.fDirty 上观察过它是否变回来了?
  3. 您是否覆盖了 isDirty
  4. 从表中删除某个项目会导致启动配置以某种方式变得无效,即当启动配置中存在无效值时,您无法Apply。例如,为了可保存,canSave 必须为启动配置中的所有选项卡返回 true

这是设置“应用”按钮启用状态的(其中一个)位置:

org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.updateButtons()

/**
* updates the button states
*/
private void updateButtons() {
boolean dirty = isDirty() && canSave();
fApplyButton.setEnabled(dirty);
fRevertButton.setEnabled(dirty);
}
  • 考虑鼠标监听器是否是您想要的。请注意,您正在响应 MouseDown,如果用户通过 Tab 键切换到控件并按 Enter/空格键,则可能不会执行您期望的操作。更典型的做法是为按钮添加 addSelectionListener。 (甚至有可能是在这个不寻常的时间响应事件导致了问题吗?)
  • 关于java - Eclipse - 自定义启动配置 - 应用/恢复按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524521/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com