Browse Source

Adjustments to custom fields in Manager

tags/v1.0.0
James Moger 12 years ago
parent
commit
a5b1594130

+ 42
- 21
src/com/gitblit/client/EditRepositoryDialog.java View File

@@ -28,12 +28,12 @@ import java.awt.event.KeyEvent;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
@@ -124,6 +124,8 @@ public class EditRepositoryDialog extends JDialog {
private Set<String> repositoryNames;
private JPanel customFieldsPanel;
private List<JTextField> customTextfields;
public EditRepositoryDialog(int protocolVersion) {
this(protocolVersion, new RepositoryModel());
@@ -470,13 +472,14 @@ public class EditRepositoryDialog extends JDialog {
repository.postReceiveScripts = postReceivePalette.getSelections();
// Custom Fields
repository.customFields = new HashMap<String, String>();
for (Component aCustomFieldPanel : customFieldsPanel.getComponents()) {
JTextField textField = (JTextField) ((JPanel)aCustomFieldPanel).getComponent(1);
repository.customFields.put(textField.getName(), textField.getText());
repository.customFields = new LinkedHashMap<String, String>();
if (customTextfields != null) {
for (JTextField field : customTextfields) {
String key = field.getName();
String value = field.getText();
repository.customFields.put(key, value);
}
}
return true;
}
@@ -555,24 +558,42 @@ public class EditRepositoryDialog extends JDialog {
return teamsPalette.getSelections();
}
public void setCustomFields(RepositoryModel repository, List<String> customFields) {
public void setCustomFields(RepositoryModel repository, Map<String, String> customFields) {
customFieldsPanel.removeAll();
customTextfields = new ArrayList<JTextField>();
for (String customFieldDef : customFields) {
String[] customFieldProperty = customFieldDef.split("=");
String fieldName = customFieldProperty[0];
String fieldLabel = customFieldProperty[1];
final Insets insets = new Insets(5, 5, 5, 5);
JPanel fields = new JPanel(new GridLayout(0, 1, 0, 5)) {
private static final long serialVersionUID = 1L;
@Override
public Insets getInsets() {
return insets;
}
};
for (Map.Entry<String, String> entry : customFields.entrySet()) {
String field = entry.getKey();
String value = "";
if (repository.customFields != null && repository.customFields.containsKey(field)) {
value = repository.customFields.get(field);
}
JTextField textField = new JTextField(value);
textField.setName(field);
JTextField textField = new JTextField(repository.customFields.get(fieldName), 50);
textField.setName(fieldName);
textField.setPreferredSize(new Dimension(450, 26));
customFieldsPanel.add(newFieldPanel(fieldLabel, 250, textField));
}
if (customFields.size() < 14) {
customFieldsPanel.add(Box.createVerticalGlue());
customFieldsPanel.add(Box.createRigidArea(new Dimension(300, 300 - (customFields.size() * 22))));
fields.add(newFieldPanel(entry.getValue(), 250, textField));
customTextfields.add(textField);
}
JScrollPane jsp = new JScrollPane(fields);
jsp.getVerticalScrollBar().setBlockIncrement(100);
jsp.getVerticalScrollBar().setUnitIncrement(100);
jsp.setViewportBorder(null);
customFieldsPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
customFieldsPanel.add(jsp);
}
/**

+ 5
- 1
src/com/gitblit/client/RepositoriesPanel.java View File

@@ -29,6 +29,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JLabel;
@@ -431,7 +432,10 @@ public abstract class RepositoriesPanel extends JPanel {
gitblit.getPreReceiveScriptsInherited(repository), repository.preReceiveScripts);
dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(repository),
gitblit.getPostReceiveScriptsInherited(repository), repository.postReceiveScripts);
dialog.setCustomFields(repository, gitblit.getSettings().get(Keys.repository.customFields).getStrings());
if (gitblit.getSettings().hasKey(Keys.groovy.customFields)) {
Map<String, String> map = gitblit.getSettings().get(Keys.groovy.customFields).getMap();
dialog.setCustomFields(repository, map);
}
dialog.setVisible(true);
final RepositoryModel revisedRepository = dialog.getRepository();
final List<String> permittedUsers = dialog.getPermittedUsers();

+ 7
- 1
src/com/gitblit/models/ServerSettings.java View File

@@ -54,10 +54,16 @@ public class ServerSettings implements Serializable {
}
public void add(SettingModel setting) {
settings.put(setting.name, setting);
if (setting != null) {
settings.put(setting.name, setting);
}
}
public SettingModel get(String key) {
return settings.get(key);
}
public boolean hasKey(String key) {
return settings.containsKey(key);
}
}

+ 18
- 0
src/com/gitblit/models/SettingModel.java View File

@@ -17,7 +17,9 @@ package com.gitblit.models;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.gitblit.utils.StringUtils;
@@ -141,4 +143,20 @@ public class SettingModel implements Serializable {
strings = StringUtils.getStringsFromValue(currentValue, separator);
return strings;
}
/**
* Returns a map of strings from the current value.
*
* @return map of string, string
*/
public Map<String, String> getMap() {
Map<String, String> map = new LinkedHashMap<String, String>();
for (String string : getStrings()) {
String[] kvp = string.split("=", 2);
String key = kvp[0];
String value = kvp[1];
map.put(key, value);
}
return map;
}
}

Loading…
Cancel
Save