public String getRepositoryLocation() throws MalformedRepositoryLocationException { if (tree.getSelectionPath() != null) { Entry selectedEntry = (Entry) tree.getSelectionPath().getLastPathComponent(); RepositoryLocation selectedLocation = selectedEntry.getLocation(); if (selectedEntry instanceof Folder) { if (enforceValidRepositoryEntryName) { selectedLocation = new RepositoryLocation(selectedLocation, locationFieldRepositoryEntry.getText()); } else { selectedLocation = new RepositoryLocation(selectedLocation, locationField.getText()); } } if (RepositoryLocationChooser.this.resolveRelativeTo != null && resolveBox.isSelected()) { return selectedLocation.makeRelative(RepositoryLocationChooser.this.resolveRelativeTo); } else { return selectedLocation.getAbsoluteLocation(); } } else { if (enforceValidRepositoryEntryName) { return locationFieldRepositoryEntry.getText(); } else { return locationField.getText(); } } }
protected void addCommonSteps() { addStep(new AnnotationDeclarationWizardStep(getState())); addStep(new MetaDataDeclarationWizardStep(getState())); if (getReader() == null) { addStep( new StoreDataWizardStep( this, getState(), (preselectedLocation != null) ? preselectedLocation.getAbsoluteLocation() : null)); } }
public RepositoryLocationChooser( Dialog owner, RepositoryLocation resolveRelativeTo, String initialValue, final boolean allowEntries, final boolean allowFolders, boolean enforceValidRepositoryEntryName, final boolean onlyWriteableRepositories) { if (initialValue != null) { try { RepositoryLocation repositoryLocation; if (resolveRelativeTo != null) { repositoryLocation = new RepositoryLocation(resolveRelativeTo, initialValue); } else { repositoryLocation = new RepositoryLocation(initialValue); } locationField.setText(repositoryLocation.getName()); locationFieldRepositoryEntry.setText(repositoryLocation.getName()); resultLabel.setText(repositoryLocation.toString()); } catch (Exception e) { } } this.resolveRelativeTo = resolveRelativeTo; this.enforceValidRepositoryEntryName = enforceValidRepositoryEntryName; tree = new RepositoryTree(owner, !allowEntries, onlyWriteableRepositories); if (initialValue != null) { if (tree.expandIfExists(resolveRelativeTo, initialValue)) { locationField.setText(""); locationFieldRepositoryEntry.setText(""); } } tree.getSelectionModel() .addTreeSelectionListener( new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { if (e.getPath() != null) { currentEntry = (Entry) e.getPath().getLastPathComponent(); if (currentEntry instanceof Folder) { // && allowFolders)) { // locationField.setText(""); } else if ((!(currentEntry instanceof Folder)) && allowEntries) { // if (true) { // //!(currentEntry instanceof Folder)) { locationField.setText(currentEntry.getLocation().getName()); locationFieldRepositoryEntry.setText(currentEntry.getLocation().getName()); } updateResult(); } } }); KeyListener keyListener = new KeyListener() { @Override public void keyPressed(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) { updateResult(); } @Override public void keyTyped(KeyEvent e) { TreePath selectionPath = tree.getSelectionPath(); if (selectionPath != null) { Entry selectedEntry = (Entry) selectionPath.getLastPathComponent(); if (!(selectedEntry instanceof Folder)) { tree.setSelectionPath(selectionPath.getParentPath()); } } } }; locationField.addKeyListener(keyListener); locationFieldRepositoryEntry.addKeyListener(keyListener); locationFieldRepositoryEntry.addObserver(this, true); setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.insets = new Insets(0, 0, 0, 0); c.fill = GridBagConstraints.BOTH; c.weightx = 1; c.weighty = 1; c.anchor = GridBagConstraints.FIRST_LINE_START; c.gridwidth = GridBagConstraints.REMAINDER; JScrollPane treePane = new ExtendedJScrollPane(tree); treePane.setBorder(ButtonDialog.createBorder()); add(treePane, c); c.insets = new Insets(ButtonDialog.GAP, 0, 0, ButtonDialog.GAP); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 0; c.weighty = 0; c.gridwidth = GridBagConstraints.RELATIVE; c.weightx = 0; locationLabel = new ResourceLabel("repository_chooser.entry_name"); locationLabel.setLabelFor(locationField); add(locationLabel, c); c.weightx = 1; c.insets = new Insets(ButtonDialog.GAP, 0, 0, 0); c.weightx = 1; c.gridwidth = GridBagConstraints.REMAINDER; add(locationField, c); add(locationFieldRepositoryEntry, c); if (enforceValidRepositoryEntryName) { locationField.setVisible(false); } else { locationFieldRepositoryEntry.setVisible(false); } c.gridwidth = GridBagConstraints.RELATIVE; c.weightx = 0; c.insets = new Insets(ButtonDialog.GAP, 0, 0, ButtonDialog.GAP); add(new ResourceLabel("repository_chooser.location"), c); c.weightx = 1; c.insets = new Insets(ButtonDialog.GAP, 0, 0, 0); c.gridwidth = GridBagConstraints.REMAINDER; add(resultLabel, c); if (resolveRelativeTo != null) { resolveBox = new JCheckBox( new ResourceActionAdapter( "repository_chooser.resolve", resolveRelativeTo.getAbsoluteLocation())); resolveBox.setSelected( ParameterService.getParameterValue( RapidMinerGUI.PROPERTY_RESOLVE_RELATIVE_REPOSITORY_LOCATIONS) .equals("true")); add(resolveBox, c); resolveBox.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateResult(); } }); } }