private JPanel createEntityIriPanel() {
    JPanel panel = new JPanel();
    panel.setBorder(new TitledBorder("Entity IRI"));
    panel.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();

    // "Start with:" section
    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 1;
    c.gridheight = 1;
    c.fill = GridBagConstraints.NONE;
    c.insets = new Insets(12, 12, 0, 12);
    c.anchor = GridBagConstraints.FIRST_LINE_START;
    panel.add(new JLabel("Start with:"), c);

    c.gridx = 1;
    c.gridy = 0;
    c.gridwidth = 2;
    c.insets = new Insets(12, 0, 0, 0);
    iriBaseActiveOntology = new JRadioButton("Active ontology IRI");
    iriBaseActiveOntology.setSelected(!EntityCreationPreferences.useDefaultBaseIRI());
    panel.add(iriBaseActiveOntology, c);

    c.gridx = 1;
    c.gridy = 1;
    c.gridwidth = 1;
    c.insets = new Insets(0, 0, 0, 5);
    iriBaseSpecifiedIri = new JRadioButton("Specified IRI:");
    iriBaseSpecifiedIri.setSelected(EntityCreationPreferences.useDefaultBaseIRI());
    panel.add(iriBaseSpecifiedIri, c);

    c.gridx = 2;
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 1.0;
    c.insets = new Insets(0, 0, 0, 12);
    iriDefaultBaseField = new JTextField();
    iriDefaultBaseField.setText(EntityCreationPreferences.getDefaultBaseIRI().toString());
    panel.add(iriDefaultBaseField, c);

    ButtonGroup group = new ButtonGroup();
    group.add(iriBaseActiveOntology);
    group.add(iriBaseSpecifiedIri);

    // "Followed by:" section
    c.gridx = 0;
    c.gridy = 2;
    c.fill = GridBagConstraints.NONE;
    c.insets = new Insets(11, 12, 0, 12);
    c.weightx = 0;
    panel.add(new JLabel("Followed by:"), c);

    c.gridx = 1;
    c.insets = new Insets(11, 0, 0, 0);
    hashButton = new JRadioButton(SEP_HASH);
    hashButton.setSelected(EntityCreationPreferences.getDefaultSeparator().equals(SEP_HASH));
    panel.add(hashButton, c);

    c.gridy = 3;
    c.insets = new Insets(0, 0, 0, 0);
    slashButton = new JRadioButton(SEP_SLASH);
    slashButton.setSelected(EntityCreationPreferences.getDefaultSeparator().equals(SEP_SLASH));
    panel.add(slashButton, c);

    c.gridy = 4;
    c.insets = new Insets(0, 0, 0, 0);
    colonButton = new JRadioButton(SEP_COLON);
    colonButton.setSelected(EntityCreationPreferences.getDefaultSeparator().equals(SEP_COLON));
    panel.add(colonButton, c);

    ButtonGroup group2 = new ButtonGroup();
    group2.add(hashButton);
    group2.add(slashButton);
    group2.add(colonButton);

    // "End with:" section
    c.gridx = 0;
    c.gridy = 5;
    c.insets = new Insets(11, 12, 0, 12);
    panel.add(new JLabel("End with:"), c);

    c.gridx = 1;
    c.insets = new Insets(11, 0, 0, 0);
    c.gridwidth = 2;
    nameAsIriFragment = new JRadioButton("User supplied name");
    nameAsIriFragment.setSelected(!EntityCreationPreferences.isFragmentAutoGenerated());
    nameAsIriFragment.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            handleActionEndWithName();
          }
        });
    panel.add(nameAsIriFragment, c);

    c.gridy = 6;
    c.insets = new Insets(0, 0, 12, 0);
    c.weighty = 1.0;
    autoIDIriFragment = new JRadioButton("Auto-generated ID");
    autoIDIriFragment.setSelected(EntityCreationPreferences.isFragmentAutoGenerated());
    autoIDIriFragment.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            handleActionEndWithID();
          }
        });
    panel.add(autoIDIriFragment, c);

    ButtonGroup group3 = new ButtonGroup();
    group3.add(nameAsIriFragment);
    group3.add(autoIDIriFragment);

    return panel;
  }