Scout Eclipse Neon两列固定宽度

时间:2016-03-14 11:16:15

标签: layout eclipse-scout

我有表格,我想把它整理成两列。首先是长而可滚动的,其他需要始终保持在右侧。第二列的宽度必须很小,因此不会占用太多的屏幕空间。

我的代码看起来像这样:

@Order(1000.0)
public class MainBox extends AbstractGroupBox {

    @Override
    protected TriState getConfiguredScrollable() {

      return TriState.FALSE;
    }

    @Order(1000.0)
    public class OfferBox extends SxAbstractGroupBox {

      @Override
      protected TriState getConfiguredScrollable() {

        return TriState.TRUE;
      }

      @Override
      protected int getConfiguredGridColumnCount() {

        return 1;
      }

      @Override
      protected int getConfiguredGridX() {

        return 0;
      }

      @Override
      protected int getConfiguredGridY() {

        return 0;
      }

      @Override
      protected double getConfiguredGridWeightX() {

        return 1; // This should stretch this box 
      }
      ......
    }

    @Order(4000.0)
    public class ShortCutBox extends AbstractGroupBox {

      @Override
      protected TriState getConfiguredScrollable() {

        return TriState.TRUE;
      }

      @Override
      protected int getConfiguredGridColumnCount() {

         return 1;
      }

      @Override
      protected int getConfiguredGridX() {

         return 1;
      }

      @Override
      protected int getConfiguredGridY() {

         return 0;
      }

     @Override
     protected double getConfiguredGridWeightX() {

        return 0; // this defined that box shouldn't stretch
     }

     @Override
     protected int getConfiguredWidthInPixel() {

         return 200;  // This should give me fix width 200
     }

     @Order(4100)
     public class MyButton1 extends AbstractButton {

     }

     @Order(4200)
     public class MyButton2 extends AbstractButton {

     }
     ....
  }
}

但是这种配置给出了这样的布局:

enter image description here

如果我设置按钮

@Override
protected int getConfiguredHorizontalAlignment() {

   return 1;
}

它看起来是正确的,但问题是框仍然是右框仍然延伸到左框,因此滚动和单击字段在左侧面板的右侧不起作用。 (黑色矩形内)

enter image description here

我错过了什么?

1 个答案:

答案 0 :(得分:2)

我刚看了你的问题,我可以通过以下方式构建我认为你想要的布局:

1。 我添加了getConfiguredGridW()方法,将1返回到两个组框,以实现每个组框仅跨越一列(父组框的网格列数= 2)。

2。 另外,我从两个组框中删除了getConfiguredGridX()getConfiguredGridY()方法,因为我认为,当父组组{{1}时,Scout会以这种方式自动命令它们,因此它们不是必需的}返回2(或默认值)。

3。 这是重要的一个: 在每个按钮中,我覆盖getConfiguredGridColumnCount()返回false(默认情况下不是true),正如我所经历的那样,当将按钮声明为非进程按钮时,侦察器以不同的方式构建其网格布局。 java doc也说:

  

配置此按钮是否为处理按钮。处理按钮通常显示在表单底部的专用按钮栏上。非处理按钮可以放在表单的任何位置。   子类可以覆盖此方法。默认为真。

4。 这个是可选的: 添加getConfiguredProcessButton()并返回true,以便右侧组框中的所有按钮将其宽度放大到父组框的宽度。

我的整个安排如下:

getConfiguredFillHorizontal()

结果: Final Layout,请忽略scrollbar-tooltip overlay;)

如果这对你有用,请告诉我!

祝你好运, 的Matthias