public void extractPatternInfo(Pattern pattern) { if (pattern.getType() != PatternType.STATE) { // execute a command on the context that will notify the user about this } selectedPatternName.setText(pattern.getName()); selectedPatternClass.setText(pattern.getPatternClass()); selectedPatternId.setText(pattern.getId()); selectedPatternDescription.setText(pattern.getDescription()); selectedPatternQuestion.setText(pattern.getQuestion()); }
public void patternSelected(Pattern p) { if (p.getType() == PatternType.PROPERTY) {} }
private JPanel makeCentrePanel() { JPanel panel = new JPanel(new BorderLayout()); JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT); // Set up the construction panel JPanel constructionPanel = new JPanel(new BorderLayout()); sp.setTopComponent(constructionPanel); Pattern p = new Pattern(); p.setName("Property pattern 1"); p.setId("PropP1"); p.setDescription("This is a demo PROPERTY pattern to test the display method"); p.setPatternClass("State pattern class1"); p.setPatternType(PatternType.PROPERTY); p.setQuestion("A state [s] persists indefinitely."); // first init all components that will fit here; selectedPatternName = new JLabel(""); selectedPatternName.setForeground(componentForeground); selectedPatternId = new JLabel(""); selectedPatternId.setForeground(componentForeground); selectedPatternClass = new JLabel(""); selectedPatternClass.setForeground(componentForeground); selectedPatternDescription = new JTextArea(3, 20); selectedPatternDescription.setBorder( BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Description")); selectedPatternDescription.setEditable(false); selectedPatternDescription.setForeground(componentForeground); selectedPatternQuestion = new JLabel(""); selectedPatternQuestion.setForeground(componentForeground); stateResultta = new JTextArea(3, 20); stateResultta.setForeground(componentForeground); stateResultta.setText("Property formula goes here (ex: P=? [ (x > 0) U true ]"); extractPatternInfo(p); JPanel aux1 = new JPanel(new BorderLayout()); aux1.setBorder( BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Pattern Details")); JPanel aux2 = new JPanel(new FlowLayout(FlowLayout.LEADING)); aux2.add(new JLabel("Pattern: ")); aux2.add(selectedPatternName); aux2.add(new JLabel("ID: ")); aux2.add(selectedPatternId); aux1.add(aux2, BorderLayout.NORTH); aux1.add(selectedPatternDescription, BorderLayout.CENTER); constructionPanel.add(aux1, BorderLayout.NORTH); aux1 = new JPanel(new BorderLayout()); aux1.setBorder( BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Builder")); JPanel templatePanel = new JPanel(new FlowLayout(FlowLayout.LEADING)); templatePanel.add(new JLabel("Template: ")); templatePanel.add(selectedPatternQuestion); aux1.add(templatePanel, BorderLayout.NORTH); aux1.add(stateResultta, BorderLayout.SOUTH); aux2 = new JPanel(new FlowLayout(FlowLayout.LEADING)); aux2.add(new JLabel("A state ")); aux2.add(new JComboBox(new String[] {"state1", "state2", "state3"})); aux2.add(new JLabel(" persists indefinitely.")); aux1.add(aux2, BorderLayout.CENTER); constructionPanel.add(aux1, BorderLayout.CENTER); // set up the states panel String[] tempStates = new String[40]; for (int i = 0; i < tempStates.length; i++) { tempStates[i] = "Property " + i; } stateList = new StateJList(tempStates); JScrollPane listContainer = new JScrollPane(stateList); listContainer.setBorder( BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Properties")); sp.setBottomComponent(listContainer); panel.add(sp); return panel; }