public CycleEdit()

in ConstraintLayoutExamples/CycleEditor/src/com/google/androidstudio/motionlayoutcycles/CycleEdit.java [118:257]


  public CycleEdit(CycleView cycleView, CycleModel cycleModel, AnimationPanel animationPanel) {
    super(new GridBagLayout());
    JPanel control = this;

    setBorder(new EmptyBorder(5, 10, 10, 20));
    myCycleModel = cycleModel;

    cycleView.addMouseListener(new MouseAdapter() {
      @Override
      public void mouseClicked(MouseEvent e) {
        myCycleModel.selectClosest(cycleView.last_click);
      }
    });
    BasicArrowButton next = new BasicArrowButton(BasicArrowButton.EAST);
    BasicArrowButton prev = new BasicArrowButton(BasicArrowButton.WEST);
    myCycleModel.delete = next;
    cycleView.addMouseListener(new MouseAdapter() {
      @Override
      public void mouseClicked(MouseEvent e) {
        myCycleModel.selectClosest(cycleView.last_click);
      }
    });
    JTextField number = new JTextField("XX");
    number.setPreferredSize(number.getPreferredSize());
    GridBagConstraints gbc = new GridBagConstraints();
    number.setText("" + myCycleModel.selected);
    number.setEditable(false);
    gbc.insets = new Insets(10, 5, 0, 0);
    next.addActionListener((e) -> {
      myCycleModel.changeSelection(+1);
    });
    prev.addActionListener((e) -> {
      myCycleModel.changeSelection(-1);
    });
    myCycleModel.mKeyCycleNo = number;

    gbc.gridy = 0;
    gbc.gridx = 2;
    gbc.gridwidth = 1;

    control.add(new JLabel("KeyCycle:", TRAILING), gbc);
    gbc.gridx = 3;
    gbc.anchor = GridBagConstraints.EAST;
    control.add(prev, gbc);
    gbc.gridx++;
    control.add(number, gbc);
    gbc.gridx++;
    gbc.anchor = GridBagConstraints.WEST;
    control.add(next, gbc);
    gbc.gridy++;

    JButton del = new JButton("Delete");
    JButton add = new JButton("Add");
    myCycleModel.add = add;
    myCycleModel.delete = del;
    del.addActionListener((e) -> {
      myCycleModel.delete();
    });
    add.addActionListener((e) -> {
      myCycleModel.add();
    });
    gbc.gridwidth = 1;
    gbc.gridx = 3;
    control.add(add, gbc);
    gbc.gridx += 2;
    control.add(del, gbc);
    gbc.gridy++;
    gbc.gridwidth = 3;
    JSlider pos = new JSlider();
    gbc.gridx = 0;
    gbc.anchor = GridBagConstraints.NORTHEAST;
    control.add(new JLabel("Pos:", TRAILING), gbc);
    gbc.gridx += 3;
    gbc.anchor = GridBagConstraints.WEST;
    control.add(pos, gbc);
    gbc.gridy++;

    JSlider period = new JSlider();
    gbc.gridx = 0;
    gbc.anchor = GridBagConstraints.NORTHEAST;
    control.add(new JLabel("Period:", TRAILING), gbc);
    gbc.gridx += 3;
    gbc.anchor = GridBagConstraints.WEST;

    control.add(period, gbc);
    gbc.gridy++;

    JSlider amp = new JSlider();
    gbc.gridx = 0;
    gbc.anchor = GridBagConstraints.NORTHEAST;
    attrName = new JComboBox<>(CycleView.MainAttribute.ShortNames);
    attrName.setSelectedIndex(myCycleModel.mAttrIndex);
    attrName.addActionListener(e -> {
      myCycleModel.setAttr(attrName.getSelectedIndex());
      updateTabName(myCycleModel.getAttName());
      animationPanel.setMode();
    });

    control.add(attrName, gbc);

    gbc.gridx += 3;
    gbc.anchor = GridBagConstraints.WEST;
    control.add(amp, gbc);

    gbc.gridy++;
    JSlider off = new JSlider();
    gbc.gridx = 0;
    gbc.anchor = GridBagConstraints.NORTHEAST;
    control.add(new JLabel("Offset:", TRAILING), gbc);

    gbc.gridx += 3;
    gbc.anchor = GridBagConstraints.WEST;
    control.add(off, gbc);

    gbc.gridy++;
    gbc.gridx = 0;
    gbc.anchor = GridBagConstraints.EAST;
    control.add(new JLabel("WaveType:", TRAILING), gbc);

    JComboBox<String> mode = new JComboBox<>(myCycleModel.waveShapeName);
    gbc.gridx += 3;
    gbc.anchor = GridBagConstraints.WEST;
    control.add(mode, gbc);

    gbc.gridy++;
    gbc.gridx = 0;
    gbc.anchor = GridBagConstraints.NORTHEAST;
    control.add(new JLabel("Target:", TRAILING), gbc);

    gbc.gridx += 3;
    gbc.anchor = GridBagConstraints.WEST;
    JTextField target = new JTextField("XXXXXXXXXXXXXXXXXXXXX");
    target.setPreferredSize(target.getPreferredSize());
    target.setText("button");
    control.add(target, gbc);

    myCycleModel.setTarget(target);
    myCycleModel.setUIElements(pos, period, amp, off, mode);
    myCycleModel.setCycle(cycleView);
  }