| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.pig.tools.streams;
|
|
|
| /**
|
| * StreamGenerator.java is a 1.4 application that
|
| * demonstrates the use of JButton, JTextField and
|
| * JLabel. It requires no other files.
|
| */
|
|
|
| import java.awt.*;
|
| import java.awt.event.*;
|
| import java.io.PrintWriter;
|
| import java.util.Random;
|
|
|
| import javax.swing.*;
|
|
|
| public class StreamGenerator implements ActionListener {
|
| JFrame generatorFrame;
|
| JPanel generatorPanel;
|
| JTextField fileField, formatField, numberField;
|
| JLabel fileLabel, formatLabel, numberLabel;
|
| JButton generateButton;
|
| PrintWriter out = null;
|
| int[] formats;
|
| Random random = new Random();
|
|
|
| public StreamGenerator() {
|
| //Create and set up the window.
|
| generatorFrame = new JFrame("Stream Generator");
|
| generatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
| generatorFrame.setSize(new Dimension(120, 40));
|
|
|
| //Create and set up the panel.
|
| generatorPanel = new JPanel(new GridLayout(4, 4));
|
|
|
| //Add the widgets.
|
| addWidgets();
|
|
|
| //Set the default button.
|
| generatorFrame.getRootPane().setDefaultButton(generateButton);
|
|
|
| //Add the panel to the window.
|
| generatorFrame.getContentPane().add(generatorPanel, BorderLayout.CENTER);
|
|
|
| //Display the window.
|
| generatorFrame.pack();
|
| generatorFrame.setVisible(true);
|
| }
|
|
|
| /**
|
| * Create and add the widgets.
|
| */
|
| private void addWidgets() {
|
| //Create widgets.
|
| fileField = new JTextField(10);
|
| formatField = new JTextField(10);
|
| numberField = new JTextField(5);
|
| fileLabel = new JLabel("File", SwingConstants.LEFT);
|
| generateButton = new JButton("Generate");
|
| formatLabel = new JLabel("Format", SwingConstants.LEFT);
|
| numberLabel = new JLabel("Number of tuples", SwingConstants.LEFT);
|
|
|
| //Listen to events from the Convert button.
|
| generateButton.addActionListener(this);
|
|
|
| //Add the widgets to the container.
|
| generatorPanel.add(fileLabel);
|
| generatorPanel.add(fileField);
|
| generatorPanel.add(formatLabel);
|
| generatorPanel.add(formatField);
|
| generatorPanel.add(numberLabel);
|
| generatorPanel.add(numberField);
|
| generatorPanel.add(generateButton);
|
|
|
|
|
| fileLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
|
| formatLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
|
| }
|
|
|
| public void actionPerformed(ActionEvent event) {
|
|
|
| if (out == null){
|
|
|
| try{
|
| String fileName = fileField.getText();
|
| String format = formatField.getText();
|
| out = new PrintWriter(fileName);
|
| String[] formats = format.split(",");
|
| this.formats = new int[formats.length];
|
| for (int i=0; i<formats.length; i++){
|
| this.formats[i] = (int)Math.pow(10,Integer.parseInt(formats[i]));
|
| }
|
| }catch(Exception e){
|
| new Dialog(generatorFrame,"Input not well formed");
|
| }
|
|
|
| //First time
|
| fileField.setEditable(false);
|
| formatField.setEditable(false);
|
|
|
| }
|
|
|
| int numTuples=0;
|
|
|
| try{
|
| numTuples = Integer.parseInt(numberField.getText());
|
| }catch(Exception e){
|
| new Dialog(generatorFrame,"Input not well formed");
|
| }
|
|
|
| for (int i=0; i<numTuples; i++){
|
| for (int j=0; j<formats.length; j++){
|
| out.print(random.nextInt(formats[j]));
|
| if (j==formats.length-1)
|
| out.println("");
|
| else
|
| out.print("\t");
|
| }
|
| }
|
|
|
| out.flush();
|
|
|
| }
|
|
|
| /**
|
| * Create the GUI and show it. For thread safety,
|
| * this method should be invoked from the
|
| * event-dispatching thread.
|
| */
|
| private static void createAndShowGUI() {
|
| //Make sure we have nice window decorations.
|
| JFrame.setDefaultLookAndFeelDecorated(true);
|
| }
|
|
|
| public static void main(String[] args) {
|
| //Schedule a job for the event-dispatching thread:
|
| //creating and showing this application's GUI.
|
| javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
| public void run() {
|
| createAndShowGUI();
|
| }
|
| });
|
| }
|
| }
|
|
|