2 * Copyright 2000-2007 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com
.intellij
.ui
;
18 import org
.jetbrains
.annotations
.Nullable
;
21 import javax
.swing
.border
.EtchedBorder
;
24 public abstract class PanelWithButtons
extends JPanel
{
25 public PanelWithButtons() {
26 super(new GridBagLayout());
29 protected void initPanel() {
30 JComponent mainComponent
= createMainComponent();
31 JButton
[] buttons
= createButtons();
33 String labelText
= getLabelText();
34 if (labelText
!= null) {
35 setBorder(BorderFactory
.createTitledBorder(new EtchedBorder(), labelText
));
40 new GridBagConstraints(0, 1, 1, buttons
.length
, 1, 1, GridBagConstraints
.WEST
, GridBagConstraints
.BOTH
, new Insets(0, 0, 0, 4), 0, 0)
43 for (int i
= 0; i
< buttons
.length
; i
++) {
44 JButton button
= buttons
[i
];
47 new GridBagConstraints(1, 1 + i
, 1, 1, 0, (i
== buttons
.length
- 1 ?
1 : 0), GridBagConstraints
.NORTH
, GridBagConstraints
.HORIZONTAL
, new Insets(0, 0, 4, 0), 0, 0)
54 protected abstract String
getLabelText();
56 protected abstract JButton
[] createButtons();
58 protected abstract JComponent
createMainComponent();