|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
if anybody is familiar with angularjs, i have a problem
<tr ng-repeat="row in data.employeeGaps | filter:search"> <td>{{ row.employeeId | employeeFilter : eData.employees}}</td>
the employeeFilter filters the id into the corresponding names
if i type in the search bar, it only 'recognizes' or filters the employeeId and not the name.
how do i solve this? my initial solution is to rewrap things in the controller and pass it back into the scope but its very messy and im looking for a more elegant solution.
tldr: filtering the filtered data
|
Thanks for replies. I have another question. When should one prefer an abstract class over an interface? What the thought process is when one needs to make a decision regarding the two?
|
On December 12 2013 19:32 darkness wrote: Thanks for replies. I have another question. When should one prefer an abstract class over an interface? What the thought process is when one needs to make a decision regarding the two? Few things that come into my mind immediately:
- Interface is stateless - i.e. it cannot define any fields, while abstract class can - Multiple inheritance - you can implement multiple interfaces, while you can only extend one abstract class. - Forcing implementation - when you define a method in interface, class that implements it, must also implement the method. When extending an abstract class, you don't have to implement everything. - Shared implementation - say you need to have the same functionality shared across a set of components - in abstract class you can define a behavior that will be shared across all components that extend this class. In interface you would need to define the method for each component separately, and to share a functionality you would essentially need to re use the same code everywhere.
|
Hey  I tried to change an image after clicking it with the following code:
<input type="image" src="/images/refresh.png" alt="Refresh" onclick="this.src='/images/reload.gif'"> But when I click the image the following error image apperas:
![[image loading]](http://i.imgur.com/aN5peUB.png)
If I include the GIF on some other point of the website both (the new one that I included and the changed one from the code above) load correctly.
I hope someone has an idea to resolve the problem 
Regards, ExChill
|
Hyrule19167 Posts
image is not a valid type for input
|
The image is the submit button. It is listed here.
|
Just use a normal image tag, should be easier.
|
Hyrule19167 Posts
On December 16 2013 06:37 ExChill wrote:The image is the submit button. It is listed here. no, it's not you would have type="submit" in that case. Also, w3schools is vile and you shouldn't use it. http://www.w3fools.com/
|
On December 16 2013 08:52 tofucake wrote:no, it's not you would have type="submit" in that case. Also, w3schools is vile and you shouldn't use it. http://www.w3fools.com/
That is just wrong An input with type="image" works exactly the same(apart from the fact that it shows an image, and that it sends the coordinates where you clicked) as a submit button...
|
Hyrule19167 Posts
cool, learned something new today
but w3schools is still terrible
anyway the problem is probably the absolute path. Try getting rid of the first forward slash
|
On December 12 2013 19:32 darkness wrote: Thanks for replies. I have another question. When should one prefer an abstract class over an interface? What the thought process is when one needs to make a decision regarding the two?
Well the original intention was to fulfil has/is_a relationships. So for example a triangle is_a shape, a triangle has corners and has color.
So the general concensus is that if a class IS something, then inherit a base class, if it HAS or is ABLE to do something then use an interface.
A Player IS a Unit, that HAS an inventory, and is ABLE to render (Renderable).
This methodology kind of faded out after people realised that vertical hierarchies cause a lot of fragility.
Instead you are better off as seeing objects as units that provide a service and have roles and responsibilities. These objects work together to solve a problem. a.k.a composition.
So basically just use interfaces for collection purposes only (e.g a collection of renderable objects) and delegate functionality to objects to keep your code DRY, rather than reimplementing code.
Implementation inheritance should only happen if you know you don't have code that is changing all the time inside it. In an interview situation a Triangle should inherit from a Shape abstract base class. In reality though you would have a Shape interface and delegate functionality to all different objects, e.g A Renderer, A Polygon Event handler, etc.
|
Russian Federation80 Posts
Hello everyone! 
A couple of weeks ago I started my first lesson at codeacademy.org, and at the moment I finished 26% of java courses. I've just wrote my "Rock Paper Scissors" game, and I decided that it would be cool to run this simple program not only on codeacademy website but also on my PC. I installed eclipse, created new project and realized that "one does not simply" copy/paste your codeacademy code to eclipse and run it. Luckly, I remembered about awesome TL programming thread! So here is the question, I would be very thankful if you guys can help me:
Q: How can I run codeacademy code on my PC? Here it is:
var userChoice = prompt("Do you choose rock, paper or scissors?"); var computerChoice = Math.random(); if (computerChoice < 0.34) { computerChoice = "rock"; } else if(computerChoice <= 0.67) { computerChoice = "paper"; } else { computerChoice = "scissors"; } var compare = function (choice1,choice2) { if (choice1 === choice2) { return "The result is a tie!"; } if (choice1 === "rock") { if (choice2 === "scissors") { return "Rock wins!"; } else {return "Paper wins!"} } if (choice1 === "paper") { if (choice2 === "rock") { return "Paper wins!"; } else {return "scissors wins!"} } if (choice1 === "scissors") { if (choice2 === "paper") { return "Scissors wins!"; } else {return "Rock wins!"} } compare(userChoice,computerChoice); };
|
On December 16 2013 10:08 Fairon wrote:Hello everyone!  A couple of weeks ago I started my first lesson at codeacademy.org, and at the moment I finished 26% of java courses. I've just wrote my "Rock Paper Scissors" game, and I decided that it would be cool to run this simple program not only on codeacademy website but also on my PC. I installed eclipse, created new project and realized that "one does not simply" copy/paste your codeacademy code to eclipse and run it. Luckly, I remembered about awesome TL programming thread! So here is the question, I would be very thankful if you guys can help me: Q: How can I run codeacademy code on my PC? Here it is: var userChoice = prompt("Do you choose rock, paper or scissors?"); var computerChoice = Math.random(); if (computerChoice < 0.34) { computerChoice = "rock"; } else if(computerChoice <= 0.67) { computerChoice = "paper"; } else { computerChoice = "scissors"; } var compare = function (choice1,choice2) { if (choice1 === choice2) { return "The result is a tie!"; } if (choice1 === "rock") { if (choice2 === "scissors") { return "Rock wins!"; } else {return "Paper wins!"} } if (choice1 === "paper") { if (choice2 === "rock") { return "Paper wins!"; } else {return "scissors wins!"} } if (choice1 === "scissors") { if (choice2 === "paper") { return "Scissors wins!"; } else {return "Rock wins!"} } compare(userChoice,computerChoice); };
Did you put it inside a Main String Args[](a.k.a main function)? Have you tried placing it inside a project? What went wrong?
In general, you can just create a New Project, use the interface they give, and then put your code in the Main String Args[] section(within the brackets). Most other beginner questions can probably be answered or shown in tutorials found through Googling.
EDIT: Also, maybe this is a bit of stupidity on my part not recognizing what your code is, but in general your function should have the return type and input types specified. So it would look something like:
public String compare(int userChoice, int computerChoice){
#Code
}
Where your choice(R/P/S) would be integer values of 0 = Rock, 1 = Paper, 2 = Scissors.
EDIT THE SECOND:
I made a version of it for you to see what I mean by the implementation. Originally my version didn't pass values back and instead just printed it in main because it's a simple function, but this shows you how to pass the values:
+ Show Spoiler +import java.util.Random; import java.util.Scanner;
public class RPSMain {
/** * @param args */ public static void main(String[] args) { System.out.println("Welcome to the Rock Paper Scissors game! \n" + "Enter 0 for Rock, 1 for Paper, 2 for Scissors: "); //Ask the user for the input. Scanner scan = new Scanner(System.in);//Create a Scanner to be used for getting the input. int userChoice = scan.nextInt();//The scanner will take the next integer input and put it in userChoice Random generator = new Random(); int computerChoice = generator.nextInt(3);//Produce random int from 0 to 2. System.out.println(compare(userChoice, computerChoice)); scan.close(); }
public static String compare(int userChoice, int computerChoice){ String printString = " "; if (userChoice == computerChoice){ printString = "It is a tie! You both entered " + userChoice + "."; } else if ((userChoice-computerChoice) == 1|| (userChoice-computerChoice) == -2){ printString = "The computer chose "+ computerChoice + ". \nYou WIN!"; } else { printString = "The computer chose "+ computerChoice +". \nYou LOSE!"; } return printString; } }
|
By the way, Fairon, if you can't get my code working lemme know. I'm just studying for exams right now so I have a bit of extra time to answer questions. After you get your code working, you should look into something called an Enumeration to represent the R/P/S choices.
Here is some documentation for it: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
|
Russian Federation80 Posts
On December 16 2013 14:16 WarSame wrote:By the way, Fairon, if you can't get my code working lemme know. I'm just studying for exams right now so I have a bit of extra time to answer questions. After you get your code working, you should look into something called an Enumeration to represent the R/P/S choices. Here is some documentation for it: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
Thanks a lot for your help! I tried to run the code your wrote but unfortunately got this error message:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: Scanner cannot be resolved to a type Scanner cannot be resolved to a type Random cannot be resolved to a type Random cannot be resolved to a type
When I tried to run my original code I had errors almost in every single line. And yeah, I put it inside of the main function (luckly I've read a short guide how to write and run programs on eclipse). That's why I was a little bit confused and curious if it's even possible to run the codeacademy code outside of a platform.
|
Farion, your code is not Java code, it's Javascript. Java and Javascript are two completely different things, you can't use Javascript code in a Java project. The names are similar, but there's no relation. Javascript is a form of Ecmascript historically used to script browsers, Java is a full-on programming language.
You don't need eclipse or anything like it to run javascript, it already runs in your browser. Just make a html page yourself and open it in IE, Chrome or Firefox and it will run.
|
On December 16 2013 10:08 Fairon wrote:Hello everyone!  A couple of weeks ago I started my first lesson at codeacademy.org, and at the moment I finished 26% of java courses. I've just wrote my "Rock Paper Scissors" game, and I decided that it would be cool to run this simple program not only on codeacademy website but also on my PC. I installed eclipse, created new project and realized that "one does not simply" copy/paste your codeacademy code to eclipse and run it. Luckly, I remembered about awesome TL programming thread! So here is the question, I would be very thankful if you guys can help me: Q: How can I run codeacademy code on my PC? Here it is: + Show Spoiler + var userChoice = prompt("Do you choose rock, paper or scissors?"); var computerChoice = Math.random(); if (computerChoice < 0.34) { computerChoice = "rock"; } else if(computerChoice <= 0.67) { computerChoice = "paper"; } else { computerChoice = "scissors"; } var compare = function (choice1,choice2) { if (choice1 === choice2) { return "The result is a tie!"; } if (choice1 === "rock") { if (choice2 === "scissors") { return "Rock wins!"; } else {return "Paper wins!"} } if (choice1 === "paper") { if (choice2 === "rock") { return "Paper wins!"; } else {return "scissors wins!"} } if (choice1 === "scissors") { if (choice2 === "paper") { return "Scissors wins!"; } else {return "Rock wins!"} } compare(userChoice,computerChoice); };
This is expected since the code you wrote is in JavaScript, not Java. This also means that you've already run the code on your computer when you wrote it.
|
Russian Federation80 Posts
Oh man, how come I didn't notice such a simple thing... That explains pretty much everything. Thanks guys, now I got it!
|
I've noticed some tutorials run their GUIs as a thread, e.g.:
public static void main(String[] args) { java.awt.EventQueue.invokeLater(new Runnable() {
@Override public void run() { FrameSize fS = new FrameSize(); } }); }
Any difference between running it from main() or from a Thread#run?
|
|
|
|
|
|
|
|