css - 更改 vaadin 中的样式定义

标签 css vaadin7

我有动态隐藏组件的代码;它使用 [component].addStyleName("name") 向组件添加样式,并且定义该样式以隐藏组件。

我有一个包含大量组件的页面;我可以将它们放在一个数组中并执行此操作,但我希望采用不同的方式。我想为所有这些组件分配它们自己的样式 - 类似于“costPanel” - 然后使用服务器端 vaadin 代码在运行时更改样式“costPanel”的定义。

Vaadin 中的 Page.Styles 类没有获取现有样式或更改现有样式的方法——唯一的方法是添加它们。

这在 Vaadin 中是否可行,即使我必须在客户端为此做一些事情?

最佳答案

这可能最适合作为评论,但它并不适合放在那里。

不是想高高在上,但听起来您正试图以一种非常复杂的方式重新发明轮子component.setVisible(false) 将完全满足您的需求,因为组件不会占用任何空间,因为它实际上并不存在于 DOM 本身中。看看下面的例子:

代码:

public class LayoutWithInvisibleComponents extends VerticalLayout {
    private int index = 0;

    public LayoutWithInvisibleComponents() {
        // add a visibility toggling button
        addComponent(new Button("Toggle next", event -> {
            Component component = getComponent(++index);
            if (component instanceof Button) {
                // just toggle the next one if it's a button
                component.setVisible(!component.isVisible());
            }
            if (index == getComponentCount() - 1) {
                // reset counter
                index = 0;
            }
        }));

        // add some invisible dummy buttons
        for (int i = 0; i < 5; i++) {
            Button button = new Button("Button " + i);
            button.setVisible(false);
            addComponent(button);
        }

        // and add a visual delimiter
        Panel rightPanel = new Panel(new Label("---------- some visual delimiter ----------"));
        rightPanel.setSizeFull();
        addComponent(rightPanel);
    }
}

结果:

DOM modifications

还有什么我想念的吗?

关于css - 更改 vaadin 中的样式定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961948/

相关文章:

html - 图标样式与图标类的结果不同

html - 自定义选择下的链接不会在隐藏的 li 声明的页面上重定向

jquery - 未排序列表 : load images or divs on demand

php - 我的标题菜单存在 IE 布局问题,它在所有其他浏览器中运行良好

java - 从 Vaadin 7 应用程序中新打开的窗口获取图像文件 (ThemeResource) 失败

java - 如何将经纬度从 Leaflet CRS.Simple 转换为 EPSG :4326

html - moz 选择器在 CSS 中不起作用

focus - Vaadin AceEditor 焦点问题

java - 编辑网格内的项目 - 使用 Vaadin 7.7.4

javascript - 如何在具有返回值的 Vaadin 中添加 JavaScript 函数?